feat: Enhance OAuth module and OpenRouter client functionality
- Updated OAuth module to include unused imports for better clarity. - Refactored OpenRouterClient to improve chat functionality and added support for tools in chat requests. - Modified internet tools (Download, Fetch, Search) to use a more flexible internet mode check. - Introduced new Bash tools for managing background jobs (BashOutput, BashKill). - Enhanced workflow tool to parse and execute workflow scripts with arguments. - Updated status and workflow views to reflect new agent and findings counts. - Added IPC protocol definitions for client requests and state payloads.
This commit is contained in:
+16
-3
@@ -32,10 +32,23 @@ impl Tool for WorkflowRun {
|
||||
}
|
||||
|
||||
fn run(&self, _ctx: &ToolCtx, args: &Value) -> Result<String> {
|
||||
let _script = args.get("script")
|
||||
let script_str = args.get("script")
|
||||
.and_then(|v| v.as_str())
|
||||
.ok_or_else(|| anyhow!("missing required argument: script"))?;
|
||||
let _workflow_args = args.get("args");
|
||||
Ok("workflow delegated to workflow engine".to_string())
|
||||
|
||||
let workflow_script: crate::app::workflow::script::WorkflowScript =
|
||||
serde_json::from_str(script_str)
|
||||
.map_err(|e| anyhow!("failed to parse workflow script: {}", e))?;
|
||||
|
||||
let workflow_args: std::collections::HashMap<String, String> = args.get("args")
|
||||
.and_then(|v| v.as_object())
|
||||
.map(|obj| {
|
||||
obj.iter().filter_map(|(k, v)| {
|
||||
v.as_str().map(|s| (k.clone(), s.to_string()))
|
||||
}).collect()
|
||||
})
|
||||
.unwrap_or_default();
|
||||
|
||||
crate::app::workflow::engine::run_workflow(&workflow_script, &workflow_args)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user