Jelajahi Sumber

fix: preserve sourceName in style import pipeline

generateStyleGuide() now accepts optional sourceName parameter,
preventing the CLI's initial analyzeStyle(text, name) call from
being overwritten by a second nameless call inside the runner.
majx_mac 8 bulan lalu
induk
melakukan
b29749b8fb

+ 1 - 1
packages/cli/src/commands/style.ts

@@ -79,7 +79,7 @@ styleCommand
           model: config.llm.model,
           projectRoot: root,
         });
-        await pipeline.generateStyleGuide(bookId, text);
+        await pipeline.generateStyleGuide(bookId, text, opts.name ?? file);
         if (!opts.json) log("Style guide (style_guide.md) generated.");
       }
 

+ 2 - 2
packages/core/src/pipeline/runner.ts

@@ -570,7 +570,7 @@ export class PipelineRunner {
    * Generate a qualitative style guide from reference text via LLM.
    * Also saves the statistical style_profile.json.
    */
-  async generateStyleGuide(bookId: string, referenceText: string): Promise<string> {
+  async generateStyleGuide(bookId: string, referenceText: string, sourceName?: string): Promise<string> {
     if (referenceText.length < 500) {
       throw new Error(`Reference text too short (${referenceText.length} chars, minimum 500). Provide at least 2000 chars for reliable style extraction.`);
     }
@@ -581,7 +581,7 @@ export class PipelineRunner {
     await mkdir(storyDir, { recursive: true });
 
     // Statistical fingerprint
-    const profile = analyzeStyle(referenceText);
+    const profile = analyzeStyle(referenceText, sourceName);
     await writeFile(join(storyDir, "style_profile.json"), JSON.stringify(profile, null, 2), "utf-8");
 
     // LLM qualitative extraction