From f725134771347a4d08224bafdbf41a0c1e370968 Mon Sep 17 00:00:00 2001 From: soryu Date: Tue, 27 Jan 2026 03:02:19 +0000 Subject: Add Red Team CLI command and frontend UI Backend additions: - Add `makima red-team notify` CLI command for red team tasks - Add RedTeamCommand enum with Notify subcommand - Add red_team API client module for notify endpoint - Add RedTeamNotifyArgs with severity, task, file, context options Frontend additions: - Add ContractCreateModal with red team toggle and prompt input - Update ContractDetail with red-team tab for notifications - Update ContractList with red team enabled badge - Add TypeScript types for RedTeamNotification and related interfaces Co-Authored-By: Claude Opus 4.5 --- makima/src/bin/makima.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'makima/src/bin') diff --git a/makima/src/bin/makima.rs b/makima/src/bin/makima.rs index ffb9364..4d88fc5 100644 --- a/makima/src/bin/makima.rs +++ b/makima/src/bin/makima.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use makima::daemon::api::{ApiClient, CreateContractRequest}; use makima::daemon::cli::{ - Cli, CliConfig, Commands, ConfigCommand, ContractCommand, SupervisorCommand, ViewArgs, + Cli, CliConfig, Commands, ConfigCommand, ContractCommand, RedTeamCommand, SupervisorCommand, ViewArgs, }; use makima::daemon::tui::{self, Action, App, ListItem, ViewType, TuiWsClient, WsEvent, OutputLine, OutputMessageType, WsConnectionState, RepositorySuggestion}; use makima::daemon::config::{DaemonConfig, RepoEntry}; @@ -30,6 +30,7 @@ async fn main() -> Result<(), Box> { Commands::Contract(cmd) => run_contract(cmd).await, Commands::View(args) => run_view(args).await, Commands::Config(cmd) => run_config(cmd).await, + Commands::RedTeam(cmd) => run_red_team(cmd).await, } } @@ -789,6 +790,16 @@ async fn run_config(cmd: ConfigCommand) -> Result<(), Box Result<(), Box> { + match cmd { + RedTeamCommand::Notify(args) => { + makima::daemon::cli::handle_notify(args).await?; + Ok(()) + } + } +} + /// Load contracts from API async fn load_contracts(client: &ApiClient) -> Result, Box> { let result = client.list_contracts().await?; @@ -1097,7 +1108,6 @@ async fn run_tui_loop( initial_phase: None, autonomous_loop: None, phase_guard: None, - local_only: None, red_team_enabled: None, red_team_prompt: None, }; -- cgit v1.2.3