import type { PromptSegment } from "./types"; import { WRITER_IDENTITY } from "./segments/writer/identity"; import { WRITER_COT } from "./segments/writer/cot"; import { WRITER_BIBLE } from "./segments/writer/bible"; import { WRITER_STYLE_BASE } from "./segments/writer/style-base"; import { WRITER_SENSES_ENHANCE } from "./segments/writer/senses-enhance"; import { WRITER_BAIMIAO_ADVANCED } from "./segments/writer/baimiao-advanced"; import { WRITER_ALIVE_FEEL } from "./segments/writer/alive-feel"; import { WRITER_NARRATIVE_RULES } from "./segments/writer/narrative-rules"; import { WRITER_DIALOGUE } from "./segments/writer/dialogue"; import { WRITER_GUARDRAILS } from "./segments/writer/guardrails"; import { WRITER_PACING } from "./segments/writer/pacing"; import { WRITER_FORMAT } from "./segments/writer/format"; export const WRITER_SEGMENTS: PromptSegment[] = [ WRITER_IDENTITY, WRITER_COT, WRITER_BIBLE, WRITER_STYLE_BASE, WRITER_SENSES_ENHANCE, WRITER_BAIMIAO_ADVANCED, WRITER_ALIVE_FEEL, WRITER_NARRATIVE_RULES, WRITER_DIALOGUE, WRITER_GUARDRAILS, WRITER_PACING, WRITER_FORMAT, ]; // Validate unique segment IDs in ALL environments (not just development). // A duplicate ID — e.g. introduced by a bad merge — would otherwise silently // shadow a segment in production. This runs once at module load; the cost is // negligible. Throwing fast surfaces the misconfiguration at startup. { const ids = WRITER_SEGMENTS.map((s) => s.id); const seen = new Set(); for (const id of ids) { if (seen.has(id)) { throw new Error(`[PromptRegistry] Duplicate segment ID: "${id}"`); } seen.add(id); } }