feat(swarm): modify unified-shell to render swarm layout

This commit is contained in:
zenchantlive 2026-02-20 18:31:23 -08:00
parent 654f73f83d
commit b5f1f57143

View file

@ -0,0 +1,41 @@
import { NextResponse } from 'next/server';
import { runBdCommand } from '../../../../lib/bridge';
export async function POST(request: Request) {
try {
const body = await request.json();
const { projectRoot, name, role, instructions } = body;
if (!projectRoot || !name || !role) {
return NextResponse.json({ ok: false, error: 'Missing required fields' }, { status: 400 });
}
// 1. Create the Agent Bead
const createRes = await runBdCommand({
projectRoot,
args: ['create', `Agent: ${name}`, '--type', 'task', '--priority', '2', '--description', instructions || `Agent role: ${role}`, '--json'],
});
if (!createRes.success) {
return NextResponse.json({ ok: false, error: createRes.error }, { status: 500 });
}
const newAgent = JSON.parse(createRes.stdout);
const agentId = newAgent.id;
// 2. Add Labels (gt:agent, role:X)
const updateRes = await runBdCommand({
projectRoot,
args: ['update', agentId, '--add-label', `gt:agent,role:${role}`, '--json'],
});
if (!updateRes.success) {
return NextResponse.json({ ok: false, error: updateRes.error }, { status: 500 });
}
return NextResponse.json({ ok: true, data: { id: agentId } });
} catch (e) {
console.error('Agent creation failed:', e);
return NextResponse.json({ ok: false, error: 'Internal server error' }, { status: 500 });
}
}