/** * Create planner types for kit-first project scaffolding. * * These types model preset intent separately from execution so future flows can * consume a deterministic plan before mutating the filesystem. */ type CreatePresetId = "basic" | "cli" | "daemon" | "mcp"; interface CreatePresetDefinition { readonly defaultBlocks: readonly string[]; readonly id: CreatePresetId; readonly presetDir: CreatePresetId; readonly summary: string; } interface CreateProjectInput { readonly description?: string; readonly includeTooling?: boolean; readonly local?: boolean; readonly name: string; readonly packageName?: string; readonly preset: CreatePresetId; readonly targetDir: string; readonly version?: string; readonly year?: string; } type CreatePlanChange = { readonly type: "copy-preset"; readonly preset: string; readonly targetDir: string; readonly includeTooling: boolean; readonly overlayBaseTemplate: boolean; } | { readonly type: "inject-shared-config"; } | { readonly type: "rewrite-local-dependencies"; readonly mode: "workspace"; } | { readonly type: "add-blocks"; readonly blocks: readonly string[]; }; interface CreateProjectPlan { readonly changes: readonly CreatePlanChange[]; readonly preset: CreatePresetDefinition; readonly values: { readonly packageName: string; readonly projectName: string; readonly version: string; readonly description: string; readonly binName: string; readonly year: string; }; } export { CreatePresetId, CreatePresetDefinition, CreateProjectInput, CreatePlanChange, CreateProjectPlan };