/** * Claude Novel Writer Extension * Main entry point */ import { DatabaseManager, MCPSQLiteClient } from './core/database.js'; import type { MCPClient } from './core/database.js'; import { CharacterSync } from './sync/character-sync.js'; import { LocationSync } from './sync/location-sync.js'; import { ChapterSync } from './sync/chapter-sync.js'; import { SceneSync } from './sync/scene-sync.js'; import { PlotSync } from './sync/plot-sync.js'; import { PlotThreadSync } from './sync/plot-thread-sync.js'; import { WorldRulesSync } from './sync/world-rules-sync.js'; import { TimelineSync } from './sync/timeline-sync.js'; import { SceneContextAssembler } from './context/scene-context.js'; import { ConsistencyChecker } from './consistency/checker.js'; import { CharacterBuilder } from './builders/character-builder.js'; import { TimelineBuilder } from './builders/timeline-builder.js'; import { LocationBuilder } from './builders/location-builder.js'; import { PlotBuilder } from './builders/plot-builder.js'; import { PlotThreadBuilder } from './builders/plot-thread-builder.js'; import { WorldRulesBuilder } from './builders/world-rules-builder.js'; import { ChapterBuilder } from './builders/chapter-builder.js'; import { SceneBuilder } from './builders/scene-builder.js'; import { SessionManager } from './session/session-manager.js'; import { ProgressDashboard } from './session/progress-dashboard.js'; import { ManuscriptAssembler } from './builders/manuscript-assembler.js'; import { GenerationManager } from './ai/generation-manager.js'; import { BeatGenerator } from './ai/beat-generator.js'; import { IdeaBuilder } from './builders/idea-builder.js'; import { IdeaSync } from './sync/idea-sync.js'; import { KnowledgeService } from './services/knowledge-service.js'; import { CanonService } from './services/canon-service.js'; import { PromiseService } from './services/promise-service.js'; import { ContextContractService } from './services/context-contract-service.js'; import { ContextPolicyEngine } from './services/context-policy-engine.js'; import { NarrativeGraphService } from './services/narrative-graph-service.js'; import { SnapshotManager } from './revision/snapshot-manager.js'; import { DraftScanner } from './analysis/draft-scanner.js'; import { PacingAnalyzer } from './analysis/pacing-analyzer.js'; import { ProseAnalyzer } from './analysis/prose-analyzer.js'; import { ReadAloudPreparer } from './analysis/read-aloud.js'; import { ResearchService } from './services/research-service.js'; import { CharacterArcService } from './services/character-arc-service.js'; import { BetaReaderService } from './services/beta-reader-service.js'; import { QueryTrackerService } from './services/query-tracker-service.js'; import { ForeshadowingService } from './services/foreshadowing-service.js'; import { SeriesManager } from './services/series-manager.js'; import type { InitOptions } from './types/novel.js'; import type { PromptFunction } from './builders/character-builder.js'; export declare class NovelWriterExtension { private db; private mcpClient; private projectId?; private projectPath; constructor(projectPath: string, mcpClient?: MCPClient); /** * Initialize a new novel project */ initialize(options: InitOptions): Promise; /** * Set the current project ID (for existing projects) */ setProjectId(projectId: number): void; /** * Check if project ID is set */ hasProjectId(): boolean; /** * Get the current project ID, or undefined if no project has been * initialized / loaded yet. */ getProjectId(): number | undefined; /** * Resolve and set the project ID from the database (the single project in * this directory's `.novel/data.db`). Returns the id, or undefined if the * database has no project yet. Use for existing projects instead of guessing. */ loadProjectId(): Promise; /** * Get character sync manager */ getCharacterSync(): CharacterSync; /** * Get location sync manager */ getLocationSync(): LocationSync; /** * Get chapter sync manager */ getChapterSync(): ChapterSync; /** * Get scene sync manager */ getSceneSync(): SceneSync; /** * Get scene context assembler */ getContextAssembler(): SceneContextAssembler; /** * Get consistency checker */ getConsistencyChecker(): ConsistencyChecker; /** * Get project health dashboard */ getProjectHealth(): Promise; /** * Get active plot threads */ getActivePlotThreads(): Promise; /** * Get writing streak info */ getWritingStreak(): Promise; /** * Get character builder for creating new characters */ getCharacterBuilder(): CharacterBuilder; /** * Get location builder for creating new locations */ getLocationBuilder(): LocationBuilder; /** * Get plot builder for creating new plot threads */ getPlotBuilder(): PlotBuilder; /** * Get plot thread builder for creating new plot thread YAML files */ getPlotThreadBuilder(): PlotThreadBuilder; /** * Get world rules builder for creating world rule YAML files */ getWorldRulesBuilder(): WorldRulesBuilder; /** * Get chapter builder for creating new chapters */ getChapterBuilder(): ChapterBuilder; /** * Get scene builder for managing scenes in a chapter */ getSceneBuilder(chapterFilePath: string): SceneBuilder; /** * Get plot sync manager */ getPlotSync(): PlotSync; /** * Get plot thread sync manager for database synchronization */ getPlotThreadSync(): PlotThreadSync; /** * Get world rules sync manager for database synchronization */ getWorldRulesSync(): WorldRulesSync; /** * Get timeline builder for creating and managing timeline events */ getTimelineBuilder(): TimelineBuilder; /** * Get timeline sync manager for database synchronization */ getTimelineSync(): TimelineSync; /** * Get session manager for tracking writing sessions */ getSessionManager(): Promise; /** * Get progress dashboard for displaying writing progress */ getProgressDashboard(): Promise; /** * Get manuscript assembler for exporting */ getManuscriptAssembler(): ManuscriptAssembler; /** * Get AI generation manager */ getGenerationManager(): GenerationManager; /** * Get scene beat generator */ getBeatGenerator(): BeatGenerator; /** * Get idea builder for creating and managing idea YAML files */ getIdeaBuilder(): IdeaBuilder; /** * Get idea sync manager for pushing ideas to the database */ getIdeaSync(): IdeaSync; /** * Get knowledge service for managing knowledge objects */ getKnowledgeService(): KnowledgeService; /** * Get canon service for managing canonical story facts */ getCanonService(): CanonService; /** * Get promise service for managing narrative promises */ getPromiseService(): PromiseService; /** * Get context contract service for managing context contracts */ getContextContractService(): ContextContractService; /** * Get a fully-wired ContextPolicyEngine (Ticket 010): the contract service * plus all registered fetchers, ready to assemble context for a contract via * `buildContext(request)`. */ getContextPolicyEngine(): ContextPolicyEngine; /** * Get narrative graph service for managing the narrative graph */ getNarrativeGraphService(): NarrativeGraphService; /** * Get snapshot manager for draft version control. * * Snapshots are created in `/revisions/` and operate directly * on the `chapters/` directory — no database access required. * * @returns A `SnapshotManager` scoped to this project's path */ getSnapshotManager(): SnapshotManager; /** * Get a DraftScanner for finding placeholder markers and running chapter * checklists. — SPEC-06 Drafting Support Tools * * @returns A `DraftScanner` scoped to this project's path */ getDraftScanner(): DraftScanner; /** * Get a PacingAnalyzer for tension-arc, POV balance, chapter-length, and * pacing-flag analysis. — GAP-11 / SPEC-08 * * @returns A `PacingAnalyzer` scoped to this project */ getPacingAnalyzer(): PacingAnalyzer; /** * Get a ProseAnalyzer for word-level, rhythm, repetition, and dialogue * prose checks on chapter Markdown files. — SPEC-05 * * @returns A `ProseAnalyzer` scoped to this project's path */ getProseAnalyzer(): ProseAnalyzer; /** * Get a ReadAloudPreparer for stripping markup and analyzing rhythm/rhyme. * — CRAFT-05 * * @returns A `ReadAloudPreparer` scoped to this project's path */ getReadAloudPreparer(): ReadAloudPreparer; /** * Get a ResearchService for managing research notes and [VERIFY:] markers. * — SPEC-04 * * @returns A `ResearchService` backed by this project's MCPClient */ getResearchService(): ResearchService; /** * Get a CharacterArcService for recording scene states and visualizing arcs. * — SPEC-09 * * @returns A `CharacterArcService` backed by this project's MCPClient */ getCharacterArcService(): CharacterArcService; /** * Get a BetaReaderService for managing beta readers and their feedback. * — SPEC-11 * * @returns A `BetaReaderService` backed by this project's MCPClient */ getBetaReaderService(): BetaReaderService; /** * Get a QueryTrackerService for tracking literary agent query submissions. * — PROC-10 * * @returns A `QueryTrackerService` backed by this project's MCPClient */ getQueryTrackerService(): QueryTrackerService; /** * Get a ForeshadowingService for tagging planted setup and tracking payoff. * — PROC-03 * * @returns A `ForeshadowingService` backed by this project's MCPClient */ getForeshadowingService(): ForeshadowingService; /** * Get a SeriesManager for grouping projects into a series with a shared bible * and cross-book thread tracking. — PROC-11 * * @returns A `SeriesManager` backed by this project's MCPClient */ getSeriesManager(): SeriesManager; /** * Create character interactively with prompts * * @param promptFn - Function to prompt user for input * @returns Path to created YAML file */ createCharacterInteractive(promptFn: PromptFunction): Promise; /** * Create location interactively with prompts * * @param promptFn - Function to prompt user for input * @returns Path to created YAML file */ createLocationInteractive(promptFn: PromptFunction): Promise; /** * Create plot thread interactively with prompts * * @param promptFn - Function to prompt user for input * @returns Path to created YAML file */ createPlotInteractive(promptFn: PromptFunction): Promise; /** * Ensure project ID is set */ private ensureProjectId; } /** * Main extension API */ export { DatabaseManager, MCPSQLiteClient, CharacterSync, LocationSync, ChapterSync, SceneSync, PlotSync, PlotThreadSync, WorldRulesSync, SceneContextAssembler, ConsistencyChecker, CharacterBuilder, LocationBuilder, PlotBuilder, PlotThreadBuilder, WorldRulesBuilder, ChapterBuilder, SceneBuilder, SessionManager, ProgressDashboard, IdeaBuilder, IdeaSync, }; export * from './types/novel.js'; export type { PromptFunction, PromptOptions } from './builders/character-builder.js'; /** * CLI and Command Handlers */ export { handleNovelCommand } from './commands/index.js'; /** * Extension version */ export declare const VERSION = "0.1.0"; //# sourceMappingURL=index.d.ts.map