Project Files
src / generator.ts
import { type Chat, type GeneratorController } from "@lmstudio/sdk";
import { configSchematics, globalConfigSchematics } from "./config";
import { StrategyFactory } from "./strategies/StrategyFactory";
import { GenerationContext } from "./strategies/ModelStrategy";
export async function generate(ctl: GeneratorController, history: Chat) {
const pluginConfig = ctl.getPluginConfig(configSchematics);
const globalConfig = ctl.getGlobalPluginConfig(globalConfigSchematics);
const model = pluginConfig.get("model");
const apiKey = globalConfig.get("apiKey");
// Resolve runtime debug flags
const envDebug = typeof process !== "undefined" && (process as any)?.env?.LMS_PLUGIN_DEBUG;
const envLogReq = typeof process !== "undefined" && (process as any)?.env?.LMS_PLUGIN_LOG_REQUESTS;
const debugChunks = envDebug === "1" ? true : envDebug === "0" ? false : pluginConfig.get("debugChunks");
const logRequests = envLogReq === "1" ? true : envLogReq === "0" ? false : pluginConfig.get("logRequests");
if (!apiKey) {
throw new Error(
"Google AI Studio API Key is required. Set it in the plugin's global configuration."
);
}
const context: GenerationContext = {
ctl,
history,
model,
apiKey,
globalConfig,
pluginConfig,
debugChunks,
logRequests
};
const strategy = StrategyFactory.getStrategy(model);
await strategy.generate(context);
}