From c618174e60e4632d36d7352d83399508c72b2f42 Mon Sep 17 00:00:00 2001 From: soryu Date: Tue, 27 Jan 2026 11:04:20 +0000 Subject: Add Red Team CLI command and frontend UI (#39) * 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 * Add CSS styles for Red Team frontend components Add comprehensive styling for: - Contract list and detail containers - Red team badge styling with gradient backgrounds - Tab navigation with red team specific styling - Red team notifications panel with severity indicators - Contract creation modal form elements - Task badges for supervisor and red team roles Co-Authored-By: Claude Opus 4.5 * Fix missing local_only field in TUI CreateContractRequest Add the missing local_only field to the CreateContractRequest struct initialization in the TUI contract creation handler. Co-Authored-By: Claude Opus 4.5 * [WIP] Heartbeat checkpoint - 2026-01-27 03:07:28 UTC --------- Co-authored-by: Claude Opus 4.5 --- makima/src/daemon/cli/red_team.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 makima/src/daemon/cli/red_team.rs (limited to 'makima/src/daemon/cli/red_team.rs') diff --git a/makima/src/daemon/cli/red_team.rs b/makima/src/daemon/cli/red_team.rs new file mode 100644 index 0000000..771aae4 --- /dev/null +++ b/makima/src/daemon/cli/red_team.rs @@ -0,0 +1,26 @@ +//! Red Team subcommand - adversarial review notification commands. + +use crate::daemon::api::{ApiClient, RedTeamNotifyRequest}; +use super::RedTeamNotifyArgs; + +/// Handle the red-team notify command. +pub async fn handle_notify(args: RedTeamNotifyArgs) -> Result<(), Box> { + let client = ApiClient::new(args.api_url, args.api_key)?; + + // Use --task if provided, otherwise fall back to MAKIMA_TASK_ID + let related_task_id = args.task; + + let req = RedTeamNotifyRequest { + message: args.message, + severity: args.severity, + related_task_id, + file_path: args.file, + context: args.context, + }; + + eprintln!("Sending red team notification..."); + let result = client.red_team_notify(req).await?; + println!("{}", serde_json::to_string(&result.0)?); + + Ok(()) +} -- cgit v1.2.3