Skip to content

M27.1: Add ExpertiseLevel and InteractionMode config types #591

@bug-ops

Description

@bug-ops

Parent: #590

Scope

Add two new enums and extend AgentConfig in zeph-core/src/config/types.rs:

#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum ExpertiseLevel {
    Beginner,
    #[default]
    Intermediate,
    Expert,
}

#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum InteractionMode {
    #[default]
    Assistant,
    Coding,
    Automation,
}

Extend AgentConfig:

pub struct AgentConfig {
    pub name: String,
    pub max_tool_iterations: usize,
    pub summary_model: Option<String>,
    #[serde(default)]
    pub expertise_level: ExpertiseLevel,
    #[serde(default)]
    pub interaction_mode: InteractionMode,
}

Acceptance Criteria

  • Enums with serde roundtrip (serialize/deserialize TOML)
  • Default values: intermediate + assistant
  • Backward compatible: existing configs without these fields still parse
  • Re-export from zeph-core public API
  • Unit tests for serde roundtrip and Default impl

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions