import type { SteConfig } from "./schema.ts" const isPlainObject = (value: unknown): value is Record => typeof value === "object" && value !== null && !Array.isArray(value) const deepMerge = ( base: Record, over: Record, ): Record => { const merged = { ...base } for (const [key, value] of Object.entries(over)) { const existing = merged[key] merged[key] = isPlainObject(existing) && isPlainObject(value) ? deepMerge(existing, value) : value } return merged } export const mergeConfigs = (global: SteConfig, project: SteConfig): SteConfig => deepMerge(global as Record, project as Record) as SteConfig