/** * SEVO Configuration — defines, merges, and validates SevoConfig. */ import type { StageId } from './types/index.js'; import type { PipelineRole } from './role-registry/index.js'; import type { EvaluatorConfig } from './evaluators/evaluator-types.js'; /** Rule configuration for gate evaluation. */ export interface GateRuleConfig { ruleId: string; appliesTo: StageId[]; severity: 'blocker' | 'warning'; params?: Record; } /** Endgame delivery chain configuration (AC-19.12). */ export interface EndgameDeliveryConfig { /** Master switch for the entire endgame chain. */ enabled: boolean; /** Auto-generate README after review passes. */ autoReadme: boolean; /** Auto-publish (npm/platform) after README. */ autoPublish: boolean; /** Auto-run gap scan after publish. */ autoGapScan: boolean; } /** Role assignment configuration (FR-22, AC-22.6/AC-22.7). */ export interface RoleAssignmentConfig { /** Explicit agentId → role mapping. */ agentRoles?: Record; /** Custom stage → required role overrides. */ stageRoles?: Record; /** Additional naming convention patterns for role inference. */ namingPatterns?: Array<{ pattern: string; role: PipelineRole; }>; } /** Agent action level for progressive disclosure (AC-15.7). */ export type ActionLevel = 'L0' | 'L1' | 'L2'; /** * AC-15.7: Action level classification. * L0 — no confirmation (file read/write, build, test, code generation) * L1 — execute then notify (config changes, dependency install, branch creation) * L2 — confirm before execute (publish, delete, external comms, production changes) */ export interface ActionLevelConfig { /** Operations that execute without confirmation. */ L0: string[]; /** Operations that execute then notify the user. */ L1: string[]; /** Operations that require user confirmation before execution. */ L2: string[]; } /** Default action level assignments (AC-15.7). */ export declare const DEFAULT_ACTION_LEVELS: ActionLevelConfig; /** Evaluator registration per stage (FR-23, AC-23.1). */ export type EvaluatorRegistryConfig = Record; /** Top-level SEVO configuration. */ export interface SevoConfig { projectName: string; specPath?: string; arcPath?: string; stages: StageId[]; rules: GateRuleConfig[]; adapter: 'openclaw' | 'standalone'; /** Endgame delivery chain settings (AC-19.12). */ endgameDelivery: EndgameDeliveryConfig; /** Pipeline notification settings (AC-19.8 / AC-19.9). */ notification?: NotificationConfig; /** Role assignment configuration (FR-22). */ roleAssignment?: RoleAssignmentConfig; /** AC-15.7: Agent action level classification. */ actionLevels: ActionLevelConfig; /** FR-23: Evaluator registry — stage name → evaluator list. */ evaluators?: EvaluatorRegistryConfig; } /** Notification configuration (FR-19). */ export interface NotificationConfig { /** Whether notifications are enabled (default: false; OpenClaw host auto-enables). */ enabled: boolean; /** Which adapter to use for delivery. */ adapter: 'openclaw' | 'standalone'; /** Feishu user ID for the OpenClaw adapter. */ userId?: string; } /** Default endgame delivery config — all steps enabled. */ export declare const DEFAULT_ENDGAME_DELIVERY: EndgameDeliveryConfig; /** * Deep-merge a partial config over defaults. * Arrays are replaced (not concatenated). */ export declare function mergeConfig(partial: Partial, defaults?: SevoConfig): SevoConfig; /** Validate a SevoConfig, returning errors if invalid. */ export declare function validateConfig(config: SevoConfig): { valid: boolean; errors: string[]; }; //# sourceMappingURL=config.d.ts.map