rho-coding-agent 1.48.0

A lightweight agent harness inspired by Pi
use std::sync::Arc;

use rho_sdk::{provider::ModelProvider, ReasoningLevel};

pub(crate) struct ProviderController {
    provider: Arc<dyn ModelProvider>,
    reasoning: ReasoningLevel,
}

impl ProviderController {
    pub(crate) fn new(provider: Arc<dyn ModelProvider>, reasoning: ReasoningLevel) -> Self {
        Self {
            provider,
            reasoning,
        }
    }

    pub(crate) fn provider(&self) -> &Arc<dyn ModelProvider> {
        &self.provider
    }

    pub(crate) fn reasoning(&self) -> ReasoningLevel {
        self.reasoning
    }

    pub(crate) fn adopt(&mut self, provider: Arc<dyn ModelProvider>, reasoning: ReasoningLevel) {
        self.provider = provider;
        self.reasoning = reasoning;
    }
}