Refactor API integration and enhance command handling
- Removed unused modules and updated module paths for clarity. - Added autocomplete functionality for command input in InputState. - Updated AppStateRest to include a method for checking if a turn is in flight. - Refactored subagent engine to use new API client structure. - Changed default provider from "openrouter" to "zen" with updated API keys and models. - Implemented tests for memory management and edit log functionalities. - Enhanced error handling in API requests and improved response parsing. - Updated UI components to reflect new API provider and status indicators.
This commit is contained in:
@@ -25,3 +25,39 @@ pub fn not_found_help(ctx: &super::super::ToolCtx, path: &Path, rel: &str) -> St
|
||||
format!("path '{}' does not exist (resolved to {})", rel, canon.display())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use serde_json::json;
|
||||
|
||||
#[test]
|
||||
fn test_arg_str_found() {
|
||||
let args = json!({"key": "value"});
|
||||
assert_eq!(arg_str(&args, "key").unwrap(), "value");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arg_str_missing() {
|
||||
let args = json!({"other": "value"});
|
||||
assert!(arg_str(&args, "key").is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arg_str_empty_string() {
|
||||
let args = json!({"key": ""});
|
||||
assert_eq!(arg_str(&args, "key").unwrap(), "");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arg_str_wrong_type() {
|
||||
let args = json!({"key": 42});
|
||||
assert!(arg_str(&args, "key").is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_arg_str_null() {
|
||||
let args = json!({"key": null});
|
||||
assert!(arg_str(&args, "key").is_err());
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -148,12 +148,12 @@ pub fn tool_is_risky(name: &str) -> bool {
|
||||
matches!(name, "write" | "delete" | "edit" | "bash" | "git_operator")
|
||||
}
|
||||
|
||||
pub fn tool_defs(tools: &[Box<dyn Tool>]) -> Vec<crate::dto::openrouter::request::ToolDef> {
|
||||
pub fn tool_defs(tools: &[Box<dyn Tool>]) -> Vec<crate::dto::provider::request::ToolDef> {
|
||||
tools
|
||||
.iter()
|
||||
.map(|t| crate::dto::openrouter::request::ToolDef {
|
||||
.map(|t| crate::dto::provider::request::ToolDef {
|
||||
type_: "function".to_string(),
|
||||
function: crate::dto::openrouter::request::ToolFunctionDef {
|
||||
function: crate::dto::provider::request::ToolFunctionDef {
|
||||
name: t.name().to_string(),
|
||||
description: t.description().to_string(),
|
||||
parameters: t.parameters(),
|
||||
|
||||
Reference in New Issue
Block a user