in src/lib/server/providers/index.ts [79:105]
async function updateCache(provider: string, modelId: string, maxTokens: number): Promise<void> {
try {
let cache: MaxTokensCache;
try {
const data = await fs.readFile(CACHE_FILE_PATH, "utf-8");
cache = JSON.parse(data) as MaxTokensCache;
} catch (readError: unknown) {
if (typeof readError === "object" && readError !== null && "code" in readError && readError.code === "ENOENT") {
cache = {};
} else {
throw readError;
}
}
if (!cache[provider]) {
cache[provider] = {};
}
cache[provider][modelId] = maxTokens;
const tempFilePath = CACHE_FILE_PATH + ".tmp";
await fs.writeFile(tempFilePath, JSON.stringify(cache, null, "\t"), "utf-8");
await fs.rename(tempFilePath, CACHE_FILE_PATH);
memoryCache = cache;
serverLog(`Cache updated for ${provider} - ${modelId}: ${maxTokens}`);
} catch (error) {
serverError(`Error updating context length cache for ${provider} - ${modelId}:`, error);
memoryCache = null;
}
}