rho-coding-agent 1.12.2

A lightweight agent harness inspired by Pi
Documentation
use tempfile::TempDir;

use super::*;
use crate::tui::tests::test_app;

#[test]
fn skill_command_prefills_the_skill_tool_call_without_expanding_the_user_prompt() {
    let root = TempDir::new().unwrap();
    let skill_dir = root.path().join(".agents/skills/inspect");
    std::fs::create_dir_all(&skill_dir).unwrap();
    std::fs::write(
        skill_dir.join("SKILL.md"),
        "---\nname: inspect\ndescription: Inspect things\ndisable-model-invocation: true\n---\nUse inspection tools.\n",
    )
    .unwrap();
    let mut app = test_app();
    app.info.runtime.cwd = root.path().to_path_buf();

    let SkillCommandAction::Prompt(prompt) = app
        .skill_command_action(
            "skill:inspect",
            "/skill:inspect Check errors.".into(),
            "/skill:inspect Check errors.".into(),
            true,
        )
        .unwrap()
    else {
        panic!("skill command should resolve to a prompt");
    };
    let call = prompt.initial_tool_call.clone().unwrap();

    assert_eq!(
        prompt,
        TurnPrompt::command(
            "/skill:inspect Check errors.".into(),
            "/skill:inspect Check errors.".into(),
        )
        .with_initial_tool_call(rho_sdk::model::ToolCall {
            id: call.id,
            name: "skill".into(),
            arguments: serde_json::json!({"name": "inspect"}),
        })
    );
}