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:
asepharyana
2026-07-11 20:21:59 +07:00
parent c1ad206a00
commit 802d9677ae
42 changed files with 1423 additions and 925 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ pub fn draw_status_bar(frame: &mut Frame, area: Rect, state: &crate::app::state:
);
let center_text = Span::styled(
format!(" | STATUS: {} | PROTOCOL: ZERO-STUBS ACTIVE ", mode_indicator),
format!(" | STATUS: {} | AGENT LOOP: LIVE ", mode_indicator),
Style::default().fg(mode_color),
);
+11 -8
View File
@@ -25,8 +25,9 @@ pub fn draw_workflow_panel(frame: &mut Frame, area: Rect, state: &crate::app::st
let tool_count = session_runtime.tool_call_results.len();
let pending_count = session_runtime.pending_tool_queue.len();
let bash_count = session_runtime.bash_jobs.len();
let subagent_queue = session_runtime.subagent_queue;
let edit_count = session_runtime.edit_count;
let agent_count = state.workflow_engine.agents.len();
let findings_count = state.workflow_engine.findings.len();
let mut items = Vec::new();
@@ -54,17 +55,19 @@ pub fn draw_workflow_panel(frame: &mut Frame, area: Rect, state: &crate::app::st
))));
}
if subagent_queue > 0 {
if agent_count > 0 {
items.push(ListItem::new(Line::from(Span::styled(
format!(" Subagent queue: {}", subagent_queue),
format!(" Agents: {}", agent_count),
Style::default().fg(Theme::INFO),
))));
}
items.push(ListItem::new(Line::from(Span::styled(
format!(" Edits: {}", edit_count),
Style::default().fg(Theme::INFO),
))));
if findings_count > 0 {
items.push(ListItem::new(Line::from(Span::styled(
format!(" Findings: {}", findings_count),
Style::default().fg(Theme::WARNING),
))));
}
let phase_status = match state.mode {
crate::app::state::types::AgentMode::Auto => "Auto-running",