/** * FABER CLI Configuration Types * * Type definitions for configuration objects * Version 2.0: Unified configuration with shared authentication */ /** * Anthropic API configuration (shared across all tools) */ export interface AnthropicConfig { api_key?: string; model?: string; max_tokens?: number; } /** * GitHub App authentication configuration */ export interface GitHubAppConfig { id: string; installation_id: string; private_key_path?: string; private_key_env_var?: string; created_via?: 'manifest-flow' | 'manual'; created_at?: string; } /** * GitHub authentication configuration (shared across all tools) */ export interface GitHubConfig { token?: string; organization?: string; project?: string; repo?: string; host?: string; app?: GitHubAppConfig; } export interface WorktreeConfig { enabled?: boolean; location?: string; inherit_from_claude?: boolean; } export interface WorkflowConfig { default?: string; config_path?: string; } export interface BacklogManagementConfig { default_limit?: number; default_order_by?: 'priority' | 'created' | 'updated' | 'none'; priority_config?: { label_prefix?: string; }; } /** * FABER-specific configuration (v2.0: only FABER-specific settings) * Note: anthropic and github are now at the top level of UnifiedConfig * * Supports both legacy format and new simplified format (v2.1) */ export interface FaberConfig { worktree?: WorktreeConfig; workflow?: WorkflowConfig; backlog_management?: BacklogManagementConfig; workflows?: { path?: string; default?: string; autonomy?: AutonomyLevel; }; runs?: { path?: string; }; } /** * Loaded FABER configuration including shared authentication * This is what ConfigManager.load() returns - combines FABER-specific * settings with shared anthropic/github configuration */ export type LoadedFaberConfig = FaberConfig & { anthropic?: AnthropicConfig; github?: GitHubConfig; }; /** * Unified configuration structure (v2.0) * Single source of truth shared across FABER and fractary-core plugins */ export interface UnifiedConfig { version: string; anthropic?: AnthropicConfig; github?: GitHubConfig; faber?: FaberConfig; work?: any; repo?: any; logs?: any; file?: any; spec?: any; docs?: any; } /** * Legacy configuration structure (v1.x - deprecated) * Kept for backward compatibility during migration */ export interface LegacyFaberConfig { anthropic?: AnthropicConfig; github?: GitHubConfig; worktree?: WorktreeConfig; workflow?: WorkflowConfig; backlog_management?: BacklogManagementConfig; } export interface ClaudeConfig { worktree?: { directory?: string; }; } /** * Options for loading YAML configuration */ export interface ConfigLoadOptions { /** Project root directory (auto-detected if not provided) */ projectRoot?: string; /** Warn about missing environment variables (default: true) */ warnMissingEnvVars?: boolean; /** Throw error if config file doesn't exist (default: false) */ throwIfMissing?: boolean; } /** * Autonomy levels for FABER workflows */ export type AutonomyLevel = 'dry-run' | 'assisted' | 'guarded' | 'autonomous'; //# sourceMappingURL=config.d.ts.map