diff --git a/Cargo.lock b/Cargo.lock index 6ba03044..46a1dfee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1602,7 +1602,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -2966,7 +2966,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -3266,6 +3266,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "platform-challenge-sdk" version = "0.1.0" +source = "git+https://github.com/PlatformNetwork/platform-v2?branch=main#8dd66cddffde4dce9e2dcdf90d8c0dd5341f04cf" dependencies = [ "aes-gcm", "anyhow", @@ -3277,7 +3278,7 @@ dependencies = [ "hex", "parity-scale-codec", "parking_lot 0.12.5", - "platform-core 0.1.0", + "platform-core", "rand 0.8.5", "serde", "serde_json", @@ -3293,42 +3294,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "platform-challenge-sdk" -version = "0.1.0" -source = "git+https://github.com/PlatformNetwork/platform-v2?branch=main#8dd66cddffde4dce9e2dcdf90d8c0dd5341f04cf" -dependencies = [ - "aes-gcm", - "anyhow", - "async-trait", - "bincode", - "chrono", - "futures", - "hex", - "parity-scale-codec", - "parking_lot 0.12.5", - "platform-core 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", - "rand 0.8.5", - "serde", - "serde_json", - "sha2 0.10.9", - "sled", - "sp-core 38.1.0", - "thiserror 2.0.18", - "tokio", - "tokio-tungstenite", - "tracing", - "uuid", -] - -[[package]] -name = "platform-challenge-sdk-wasm" -version = "0.1.0" -dependencies = [ - "bincode", - "serde", -] - [[package]] name = "platform-challenge-sdk-wasm" version = "0.1.0" @@ -3338,27 +3303,6 @@ dependencies = [ "serde", ] -[[package]] -name = "platform-core" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "bs58", - "chrono", - "hex", - "rand 0.8.5", - "schnorrkel", - "serde", - "serde_json", - "sha2 0.10.9", - "sp-core 31.0.0", - "thiserror 2.0.18", - "tracing", - "uuid", - "wasm-runtime-interface 0.1.0", -] - [[package]] name = "platform-core" version = "0.1.0" @@ -3378,7 +3322,7 @@ dependencies = [ "thiserror 2.0.18", "tracing", "uuid", - "wasm-runtime-interface 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", + "wasm-runtime-interface", ] [[package]] @@ -3600,7 +3544,7 @@ dependencies = [ "once_cell", "socket2 0.6.2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -4000,7 +3944,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4880,7 +4824,7 @@ dependencies = [ "getrandom 0.4.1", "once_cell", "rustix 1.1.3", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4905,7 +4849,7 @@ dependencies = [ "bincode", "chrono", "clap", - "platform-challenge-sdk 0.1.0", + "platform-challenge-sdk", "rand 0.8.5", "reqwest", "serde", @@ -4923,8 +4867,8 @@ dependencies = [ "bincode", "chrono", "hex", - "platform-challenge-sdk 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", - "platform-core 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", + "platform-challenge-sdk", + "platform-core", "rusqlite", "serde", "sled", @@ -4939,7 +4883,7 @@ name = "term-challenge-wasm" version = "0.1.0" dependencies = [ "bincode", - "platform-challenge-sdk-wasm 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", + "platform-challenge-sdk-wasm", "serde", ] @@ -5794,25 +5738,6 @@ dependencies = [ "wasmparser 0.244.0", ] -[[package]] -name = "wasm-runtime-interface" -version = "0.1.0" -dependencies = [ - "bincode", - "chrono", - "ipnet", - "platform-challenge-sdk-wasm 0.1.0", - "reqwest", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.18", - "tracing", - "trust-dns-resolver", - "url", - "wasmtime 41.0.3", -] - [[package]] name = "wasm-runtime-interface" version = "0.1.0" @@ -5821,7 +5746,7 @@ dependencies = [ "bincode", "chrono", "ipnet", - "platform-challenge-sdk-wasm 0.1.0 (git+https://github.com/PlatformNetwork/platform-v2?branch=main)", + "platform-challenge-sdk-wasm", "reqwest", "serde", "serde_json", @@ -6361,7 +6286,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 81845fd1..70a0dad0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,8 @@ license = "Apache-2.0" repository = "https://github.com/PlatformNetwork/term-challenge" [workspace.dependencies] -platform-challenge-sdk = { git = "https://github.com/PlatformNetwork/platform.git", features = ["http-server"] } -platform-core = { git = "https://github.com/PlatformNetwork/platform.git" } +platform-challenge-sdk = { git = "https://github.com/PlatformNetwork/platform-v2", branch = "main", features = ["http-server"] } +platform-core = { git = "https://github.com/PlatformNetwork/platform-v2", branch = "main" } sp-core = { version = "31.0", default-features = false, features = ["std"] } sled = "0.34" bincode = "1.3" diff --git a/server/Cargo.toml b/server/Cargo.toml index 0223bcc4..66f26039 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -14,7 +14,7 @@ name = "term-challenge-server" path = "src/main.rs" [dependencies] -platform-challenge-sdk = { path = "/workspace/platform-v2/crates/challenge-sdk", features = ["http-server"] } +platform-challenge-sdk = { git = "https://github.com/PlatformNetwork/platform-v2", branch = "main", features = ["http-server"] } axum = { version = "0.7", features = ["json"] } tokio = { version = "1.40", features = ["full"] } diff --git a/server/src/main.rs b/server/src/main.rs index ab61bf1b..2a04bce0 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -16,7 +16,10 @@ use serde_json::json; use tracing::info; #[derive(Parser)] -#[command(name = "term-challenge-server", about = "Terminal Benchmark Challenge Server")] +#[command( + name = "term-challenge-server", + about = "Terminal Benchmark Challenge Server" +)] struct Cli { #[arg(long, env = "CHALLENGE_HOST", default_value = "0.0.0.0")] host: String, @@ -167,7 +170,11 @@ impl TerminalBenchChallenge { }) .collect(); - entries.sort_by(|a, b| b.score.partial_cmp(&a.score).unwrap_or(std::cmp::Ordering::Equal)); + entries.sort_by(|a, b| { + b.score + .partial_cmp(&a.score) + .unwrap_or(std::cmp::Ordering::Equal) + }); for (i, entry) in entries.iter_mut().enumerate() { entry.rank = (i + 1) as u32; } @@ -307,10 +314,7 @@ impl ServerChallenge for TerminalBenchChallenge { } } - async fn evaluate( - &self, - req: EvaluationRequest, - ) -> Result { + async fn evaluate(&self, req: EvaluationRequest) -> Result { let submission: SubmissionData = serde_json::from_value(req.data.clone()).map_err(|e| { ChallengeError::Evaluation(format!("Failed to parse submission data: {}", e)) })?; @@ -341,18 +345,17 @@ impl ServerChallenge for TerminalBenchChallenge { } let total_tasks = submission.task_results.len() as f64; - let passed_tasks = submission - .task_results - .iter() - .filter(|r| r.passed) - .count() as f64; + let passed_tasks = submission.task_results.iter().filter(|r| r.passed).count() as f64; let pass_rate = passed_tasks / total_tasks; let avg_score: f64 = submission.task_results.iter().map(|r| r.score).sum::() / total_tasks; - let total_execution_time_ms: u64 = - submission.task_results.iter().map(|r| r.execution_time_ms).sum(); + let total_execution_time_ms: u64 = submission + .task_results + .iter() + .map(|r| r.execution_time_ms) + .sum(); let final_score = (pass_rate * 0.7 + avg_score * 0.3).clamp(0.0, 1.0); @@ -392,10 +395,7 @@ impl ServerChallenge for TerminalBenchChallenge { )) } - async fn validate( - &self, - req: ValidationRequest, - ) -> Result { + async fn validate(&self, req: ValidationRequest) -> Result { let mut errors = Vec::new(); let mut warnings = Vec::new(); @@ -505,8 +505,8 @@ async fn main() -> Result<()> { Some(id) => ChallengeId::from_str(id) .ok_or_else(|| anyhow::anyhow!("Invalid challenge ID UUID: {}", id))?, None => { - let id = ChallengeId::from_str("a1b2c3d4-e5f6-7890-abcd-ef1234567890") - .unwrap_or_default(); + let id = + ChallengeId::from_str("a1b2c3d4-e5f6-7890-abcd-ef1234567890").unwrap_or_default(); info!("No challenge ID provided, using default: {}", id); id } diff --git a/wasm/src/routes.rs b/wasm/src/routes.rs index 6227053d..1b9c4967 100644 --- a/wasm/src/routes.rs +++ b/wasm/src/routes.rs @@ -43,7 +43,7 @@ pub fn get_route_definitions() -> Vec { method: String::from("POST"), path: String::from("/submit"), description: String::from("Submission endpoint: receives zip package and metadata"), - requires_auth: false, + requires_auth: true, }, WasmRouteDefinition { method: String::from("GET"), diff --git a/wasm/src/types.rs b/wasm/src/types.rs index 6c77021c..42f284c9 100644 --- a/wasm/src/types.rs +++ b/wasm/src/types.rs @@ -295,21 +295,4 @@ impl Default for WhitelistConfig { } } -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct LlmMessage { - pub role: String, - pub content: String, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct LlmRequest { - pub model: String, - pub messages: Vec, - pub max_tokens: u32, - pub temperature: f64, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct LlmResponse { - pub content: String, -} +pub use platform_challenge_sdk_wasm::{LlmMessage, LlmRequest, LlmResponse};