Large World graph, agent platform, brain stack & dashboard rebuild
Frontend - Large World: collapse org/company/team tiers into one expandable React Flow hierarchy (WorldFlow) with per-click expand, persisted node positions, a compact tree sidebar, wrench multi-select delete across levels, and a sized right slide-out (phone/tablet/full) showing an agent summary + drill button. - Agent page: GitHub-style animated contribution grid (VitalsCard), collapsible System Prompt + Personality cards, restructured anatomy cards, bigger avatar with name/title header row, Markdown/JSON-aware rendering, brain registry + history, avatar generate/upload. - User-icon menu (Infrastructure/Brains/Tools/Profile/Credits) + ToolPanel; Master Planner deploy wizard (Specialists/Swarm/Scheduled/Triggered); Team Runs view; reap-progress modal; dashboard is the single live interface. Backend - cm-brain crate (.brain as the agent definition) + brain apply/history. - Hard-purge reap (FK-ordered) + sandbox release + SSE batch-delete. - Swarm self-verifying loop, mode-aware planner, web.search tool, webhooks (migration 0013), org/company/team delete endpoints, scheduler sweeps. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9f266d5806
commit
34f744734b
@@ -168,6 +168,43 @@ pub async fn run_topology(
|
||||
))
|
||||
}
|
||||
|
||||
/// `POST /api/swarm/run` — ENQUEUE a self-verifying swarm run (tier `swarm`): Opus
|
||||
/// plans tasks → a worker swarm executes → Opus verifies each against the checklist
|
||||
/// → failures requeue → loop until clean. Streams into the Runs view like any run.
|
||||
#[derive(serde::Deserialize)]
|
||||
pub struct SwarmRunRequest {
|
||||
pub goal: String,
|
||||
#[serde(default)]
|
||||
pub checklist: Vec<String>,
|
||||
#[serde(default)]
|
||||
pub task_count: Option<usize>,
|
||||
#[serde(default)]
|
||||
pub worker_model: String,
|
||||
}
|
||||
|
||||
pub async fn run_swarm(
|
||||
State(state): State<AppState>,
|
||||
Authed(user): Authed,
|
||||
Json(req): Json<SwarmRunRequest>,
|
||||
) -> Result<(StatusCode, Json<RunAccepted>), ApiError> {
|
||||
if req.goal.trim().is_empty() {
|
||||
return Err(ApiError::BadRequest);
|
||||
}
|
||||
let id = Uuid::now_v7();
|
||||
let config = serde_json::json!({
|
||||
"goal": req.goal,
|
||||
"checklist": req.checklist,
|
||||
"task_count": req.task_count,
|
||||
"worker_model": req.worker_model,
|
||||
});
|
||||
cm_db::repo::topology_runs::enqueue_run_tier(&state.pool, id, user.workspace_id, &req.goal, &config, "swarm")
|
||||
.await?;
|
||||
Ok((
|
||||
StatusCode::ACCEPTED,
|
||||
Json(RunAccepted { run_id: id.to_string(), status: "queued".into() }),
|
||||
))
|
||||
}
|
||||
|
||||
/// A saved/queued run, summarized (now includes lifecycle status + kind).
|
||||
#[derive(Serialize)]
|
||||
pub struct RunSummary {
|
||||
|
||||
Reference in New Issue
Block a user