Updates
This commit is contained in:
		@@ -38,12 +38,6 @@ enum Commands {
 | 
			
		||||
        #[arg(long, default_value = "ws://127.0.0.1:9944")]
 | 
			
		||||
        url: String,
 | 
			
		||||
    },
 | 
			
		||||
    /// Connect to Unix socket server
 | 
			
		||||
    Unix {
 | 
			
		||||
        /// Unix socket path
 | 
			
		||||
        #[arg(long, default_value = "/tmp/hero-openrpc.sock")]
 | 
			
		||||
        socket_path: PathBuf,
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Available RPC methods with descriptions
 | 
			
		||||
@@ -161,10 +155,6 @@ async fn main() -> Result<()> {
 | 
			
		||||
            println!("{} {}", "Connecting to WebSocket server:".green(), url.cyan());
 | 
			
		||||
            ClientTransport::WebSocket(url)
 | 
			
		||||
        }
 | 
			
		||||
        Commands::Unix { socket_path } => {
 | 
			
		||||
            println!("{} {:?}", "Connecting to Unix socket server:".green(), socket_path);
 | 
			
		||||
            ClientTransport::Unix(socket_path)
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    // Connect to the server
 | 
			
		||||
@@ -282,15 +272,18 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .with_prompt("Signature (hex)")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let nonce: String = Input::new()
 | 
			
		||||
                .with_prompt("Nonce (hex) - fetch via fetch_nonce first")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let result = client.authenticate(pubkey, signature, nonce).await?;
 | 
			
		||||
            println!("{} {}", "Authentication result:".green().bold(), 
 | 
			
		||||
            println!("{} {}", "Authentication result:".green().bold(),
 | 
			
		||||
                if result { "Success".green() } else { "Failed".red() });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        "whoami" => {
 | 
			
		||||
            let result = client.whoami().await?;
 | 
			
		||||
            println!("{} {}", "User info:".green().bold(), 
 | 
			
		||||
                serde_json::to_string_pretty(&result)?.cyan());
 | 
			
		||||
            println!("{} {}", "User info:".green().bold(), result.cyan());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        "play" => {
 | 
			
		||||
@@ -307,7 +300,7 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .with_prompt("Script content")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let script_types = ["HeroScript", "RhaiSAL", "RhaiDSL"];
 | 
			
		||||
            let script_types = ["OSIS", "SAL", "V", "Python"];
 | 
			
		||||
            let script_type_selection = Select::new()
 | 
			
		||||
                .with_prompt("Script type")
 | 
			
		||||
                .items(&script_types)
 | 
			
		||||
@@ -315,10 +308,10 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .interact()?;
 | 
			
		||||
 | 
			
		||||
            let script_type = match script_type_selection {
 | 
			
		||||
                0 => ScriptType::HeroScript,
 | 
			
		||||
                1 => ScriptType::RhaiSAL,
 | 
			
		||||
                2 => ScriptType::RhaiDSL,
 | 
			
		||||
                _ => ScriptType::HeroScript,
 | 
			
		||||
                0 => ScriptType::OSIS,
 | 
			
		||||
                1 => ScriptType::SAL,
 | 
			
		||||
                2 => ScriptType::V,
 | 
			
		||||
                _ => ScriptType::Python,
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            let add_prerequisites = Confirm::new()
 | 
			
		||||
@@ -335,9 +328,34 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                None
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            let caller_id: String = Input::new()
 | 
			
		||||
                .with_prompt("Caller ID")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let context_id: String = Input::new()
 | 
			
		||||
                .with_prompt("Context ID")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let specify_timeout = Confirm::new()
 | 
			
		||||
                .with_prompt("Specify timeout (seconds)?")
 | 
			
		||||
                .default(false)
 | 
			
		||||
                .interact()?;
 | 
			
		||||
 | 
			
		||||
            let timeout = if specify_timeout {
 | 
			
		||||
                let t: u64 = Input::new()
 | 
			
		||||
                    .with_prompt("Timeout (seconds)")
 | 
			
		||||
                    .interact_text()?;
 | 
			
		||||
                Some(t)
 | 
			
		||||
            } else {
 | 
			
		||||
                None
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            let job_params = JobParams {
 | 
			
		||||
                script,
 | 
			
		||||
                script_type,
 | 
			
		||||
                caller_id,
 | 
			
		||||
                context_id,
 | 
			
		||||
                timeout,
 | 
			
		||||
                prerequisites,
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
@@ -360,7 +378,7 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .with_prompt("Script content")
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let script_types = ["HeroScript", "RhaiSAL", "RhaiDSL"];
 | 
			
		||||
            let script_types = ["OSIS", "SAL", "V", "Python"];
 | 
			
		||||
            let script_type_selection = Select::new()
 | 
			
		||||
                .with_prompt("Script type")
 | 
			
		||||
                .items(&script_types)
 | 
			
		||||
@@ -368,10 +386,10 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .interact()?;
 | 
			
		||||
 | 
			
		||||
            let script_type = match script_type_selection {
 | 
			
		||||
                0 => ScriptType::HeroScript,
 | 
			
		||||
                1 => ScriptType::RhaiSAL,
 | 
			
		||||
                2 => ScriptType::RhaiDSL,
 | 
			
		||||
                _ => ScriptType::HeroScript,
 | 
			
		||||
                0 => ScriptType::OSIS,
 | 
			
		||||
                1 => ScriptType::SAL,
 | 
			
		||||
                2 => ScriptType::V,
 | 
			
		||||
                _ => ScriptType::Python,
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            let add_prerequisites = Confirm::new()
 | 
			
		||||
@@ -416,18 +434,17 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
 | 
			
		||||
                .interact_text()?;
 | 
			
		||||
 | 
			
		||||
            let result = client.get_job_logs(job_id).await?;
 | 
			
		||||
            println!("{} {}", "Job logs:".green().bold(), result.logs.cyan());
 | 
			
		||||
            match result.logs {
 | 
			
		||||
                Some(logs) => println!("{} {}", "Job logs:".green().bold(), logs.cyan()),
 | 
			
		||||
                None => println!("{} {}", "Job logs:".green().bold(), "(no logs)".yellow()),
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        "list_jobs" => {
 | 
			
		||||
            let result = client.list_jobs().await?;
 | 
			
		||||
            println!("{}", "Jobs:".green().bold());
 | 
			
		||||
            for job in result {
 | 
			
		||||
                println!("  {} - {} ({:?})", 
 | 
			
		||||
                    job.id().yellow(),
 | 
			
		||||
                    job.script_type(),
 | 
			
		||||
                    job.status()
 | 
			
		||||
                );
 | 
			
		||||
            println!("{}", "Job IDs:".green().bold());
 | 
			
		||||
            for id in result {
 | 
			
		||||
                println!("  {}", id.yellow());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user