rho-coding-agent 1.8.0

A lightweight agent harness inspired by Pi
Documentation
use std::path::Path;

use super::{RuntimeOptions, SdkBootstrapOptions, ToolOptions, WorkspaceOptions};
use pretty_assertions::assert_eq;
use {
    crate::compaction::CompactionConfig, crate::config::Config,
    rho_providers::providers::ProviderBuildOptions,
};

#[test]
fn converts_application_config_without_credentials_or_side_effects() {
    let config = Config {
        provider: "anthropic".into(),
        model: "claude-test".into(),
        max_output_bytes: 1234,
        max_tool_output_lines: 45,
        rtk: false,
        inline_shell: "zsh".into(),
        auto_compact: true,
        compact_threshold_percent: 75,
        compact_target_percent: 40,
        ..Config::default()
    };

    let actual = SdkBootstrapOptions::from_config(&config, Path::new("workspace")).unwrap();

    assert_eq!(
        actual,
        SdkBootstrapOptions {
            provider: ProviderBuildOptions::new("anthropic", "claude-test", config.reasoning,)
                .unwrap(),
            runtime: RuntimeOptions {
                reasoning: config.reasoning,
                compaction: CompactionConfig {
                    auto_compact: true,
                    threshold_percent: 75,
                    target_percent: 40,
                },
            },
            workspace: WorkspaceOptions {
                root: "workspace".into(),
            },
            tools: ToolOptions {
                max_output_bytes: 1234,
                max_output_lines: 45,
                rtk_enabled: false,
                inline_shell: "zsh".into(),
            },
        }
    );
}