summaryrefslogtreecommitdiff
path: root/makima/src/bin
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-27 03:02:19 +0000
committersoryu <soryu@soryu.co>2026-01-27 03:04:03 +0000
commitf725134771347a4d08224bafdbf41a0c1e370968 (patch)
treecc1251e519dbc79910502718a48423e9383e0ac7 /makima/src/bin
parentee45906b07d1032afaf8a56cce48826bea0c3f8b (diff)
downloadsoryu-f725134771347a4d08224bafdbf41a0c1e370968.tar.gz
soryu-f725134771347a4d08224bafdbf41a0c1e370968.zip
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 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/bin')
-rw-r--r--makima/src/bin/makima.rs14
1 files changed, 12 insertions, 2 deletions
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<dyn std::error::Error + Send + Sync>> {
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<dyn std::error::Error
}
}
+/// Run red team commands.
+async fn run_red_team(cmd: RedTeamCommand) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
+ match cmd {
+ RedTeamCommand::Notify(args) => {
+ makima::daemon::cli::handle_notify(args).await?;
+ Ok(())
+ }
+ }
+}
+
/// Load contracts from API
async fn load_contracts(client: &ApiClient) -> Result<Vec<ListItem>, Box<dyn std::error::Error + Send + Sync>> {
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,
};