/** * config/types.ts — Types for the unified DevClaw configuration. * * A single workflow.yaml combines roles, models, and workflow. * Three-layer resolution: built-in → workspace → per-project. */ import type { WorkflowConfig } from "../workflow.js"; /** * Role override in workflow.yaml. All fields optional — only override what you need. * Set to `false` to disable a role entirely for a project. */ export type RoleOverride = { levels?: string[]; defaultLevel?: string; models?: Record; emoji?: Record; completionResults?: string[]; }; /** * The full workflow.yaml shape. * All fields optional — missing fields inherit from the layer below. */ export type DevClawConfig = { roles?: Record; workflow?: Partial; }; /** * Fully resolved config — all fields guaranteed present. * Built by merging three layers over the built-in defaults. */ export type ResolvedConfig = { roles: Record; workflow: WorkflowConfig; }; /** * Fully resolved role config — all fields present. */ export type ResolvedRoleConfig = { levels: string[]; defaultLevel: string; models: Record; emoji: Record; completionResults: string[]; enabled: boolean; };