АДРЕСНЫЙ РЕЖИМ - авторан история - базовая версия + доп кля + конфиг дизапйна

This commit is contained in:
2026-04-09 16:32:19 +03:00
parent edfa09c9af
commit 99288c195d
40 changed files with 5174 additions and 853 deletions
@@ -0,0 +1,38 @@
import fs from "fs";
import { ASSISTANT_CANON_FILE } from "../config";
const FALLBACK_CANON = [
"Не выдумывай возможности.",
"Не обещай настройку 1С и админ-действия.",
"Не показывай внутренние технические термины пользователю.",
"Говори по-человечески и предлагай ближайший полезный поддерживаемый шаг."
].join(" ");
let cache: { mtimeMs: number; excerpt: string } | null = null;
function stripMarkdown(input: string): string {
return input
.replace(/^#{1,6}\s+/gm, "")
.replace(/[`*_>\-\[\]\(\)]/g, " ")
.replace(/\s+/g, " ")
.trim();
}
export function loadAssistantCanonExcerpt(maxChars = 900): string {
try {
const mtimeMs = fs.existsSync(ASSISTANT_CANON_FILE) ? fs.statSync(ASSISTANT_CANON_FILE).mtimeMs : -1;
if (cache && cache.mtimeMs === mtimeMs) {
return cache.excerpt;
}
if (!fs.existsSync(ASSISTANT_CANON_FILE)) {
return FALLBACK_CANON;
}
const raw = fs.readFileSync(ASSISTANT_CANON_FILE, "utf-8");
const normalized = stripMarkdown(raw);
const excerpt = normalized.length > maxChars ? `${normalized.slice(0, maxChars).trim()}...` : normalized;
cache = { mtimeMs, excerpt: excerpt || FALLBACK_CANON };
return cache.excerpt;
} catch {
return cache?.excerpt ?? FALLBACK_CANON;
}
}