import type { SoulConfig, UserConfig, ToolsConfig, InstallAction } from '../types.js'; import { FileConfigAdapter } from './file-adapter.js'; /** * ConfigService interface — abstracts config read/write operations. * Currently backed by FileConfigAdapter (writes .md files from templates). * Designed for future swap to SqliteConfigAdapter or PostgresConfigAdapter. */ export interface ConfigService { readSoul(): Promise; readUser(): Promise; readTools(): Promise; writeSoul(config: SoulConfig): Promise; writeUser(config: UserConfig): Promise; writeTools(config: ToolsConfig): Promise; syncFramework(action: InstallAction): Promise; } export function createConfigService( mosaicHome: string, sourceDir: string, ): ConfigService { return new FileConfigAdapter(mosaicHome, sourceDir); }