feat(dev): adiciona Design Studio na sidebar de /development

- Novo item "Design Studio" abaixo de Automation Center (ícone PenTool, cor roxa)
- Renderiza DevCenter.tsx com abas Design/Assemble/Deploy/Galeria
- DESIGN_STUDIO.md documenta estado atual e pendências para próximo agente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jonas Pacheco 2026-03-27 14:53:44 -03:00
parent f3322ab075
commit 3286ca2fb4
2 changed files with 43 additions and 3 deletions

View File

@ -0,0 +1,29 @@
# Design Studio — Contexto para próximo agente
## O que é
Design Studio é a entrada na sidebar de `/development` (DevelopmentModule.tsx) que abre o `DevCenter.tsx` como painel interno.
## Estado atual (27/03/2026)
O ícone e a navegação estão implementados. O conteúdo renderizado é o `DevCenter.tsx` existente, que já possui 4 abas funcionais:
| Aba | O que faz |
|-----|-----------|
| **Design** | Editor de definições de agente (modos: Markdown, TypeScript, Visual-JSON) |
| **Assemble** | Agentes draft → Blackboard gera o código → polling de status |
| **Deploy** | Agentes prontos → deploy, re-montar |
| **Galeria** | Grid de agentes implantados, busca, executar, fork |
## O que FALTA (João tem ideias — perguntar antes de implementar)
- **Visual canvas drag-and-drop** para o modo "Visual" do editor (hoje é um Textarea com JSON manual)
- **Suporte a UML** no editor de definições
- O usuário João mencionou ter ideias específicas para o Design Studio — **confirmar com ele antes de implementar qualquer coisa nova aqui**
## Arquivos relacionados
- `client/src/pages/DevCenter.tsx` — componente principal renderizado pelo Design Studio
- `client/src/pages/DevelopmentModule.tsx` — sidebar onde o item foi adicionado (id: "designstudio", ícone: PenTool)
- `server/routes/agent-defs.ts` (ou similar) — API de definições de agentes usada pelo DevCenter
- `migrations/phase6_agent_defs.sql` — schema das tabelas de agent definitions

View File

@ -11,12 +11,12 @@ import { Label } from "@/components/ui/label";
import { Textarea } from "@/components/ui/textarea"; import { Textarea } from "@/components/ui/textarea";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { useToast } from "@/hooks/use-toast"; import { useToast } from "@/hooks/use-toast";
import { import {
Code2, Database, Layout, GitBranch, BarChart3, FileText, Code2, Database, Layout, GitBranch, BarChart3, FileText,
Plus, Settings, Play, Zap, Layers, Puzzle, Palette, Plus, Settings, Play, Zap, Layers, Puzzle, Palette,
Terminal, Box, Workflow, PanelLeft, Table2, FormInput, Terminal, Box, Workflow, PanelLeft, Table2, FormInput,
ListChecks, PieChart, LineChart, Gauge, Bot, Code, Trash2, Save, ListChecks, PieChart, LineChart, Gauge, Bot, Code, Trash2, Save,
Sparkles, Rocket Sparkles, Rocket, PenTool
} from "lucide-react"; } from "lucide-react";
import { useLocation } from "wouter"; import { useLocation } from "wouter";
@ -27,8 +27,9 @@ import IDE from "./IDE";
import DevAgent from "@/components/lowcode/DevAgent"; import DevAgent from "@/components/lowcode/DevAgent";
import OpenClawPanel from "@/components/OpenClawPanel"; import OpenClawPanel from "@/components/OpenClawPanel";
import AutomationCenter from "./AutomationCenter"; import AutomationCenter from "./AutomationCenter";
import DevCenter from "./DevCenter";
type ActiveTool = "home" | "doctypes" | "pages" | "workflows" | "dashboards" | "reports" | "scripts" | "ide" | "agent" | "openclaw" | "automationcenter"; type ActiveTool = "home" | "doctypes" | "pages" | "workflows" | "dashboards" | "reports" | "scripts" | "ide" | "agent" | "openclaw" | "automationcenter" | "designstudio";
interface Dashboard { interface Dashboard {
id: number; id: number;
@ -279,6 +280,15 @@ export default function DevelopmentModule() {
count: 0, count: 0,
category: "dev" category: "dev"
}, },
{
id: "designstudio" as ActiveTool,
name: "Design Studio",
description: "Projete e monte agentes autônomos",
icon: PenTool,
color: "bg-purple-600",
count: 0,
category: "dev"
},
]; ];
const [, navigate] = useLocation(); const [, navigate] = useLocation();
@ -727,6 +737,7 @@ export default function DevelopmentModule() {
{activeTool === "agent" && <DevAgent />} {activeTool === "agent" && <DevAgent />}
{activeTool === "openclaw" && <OpenClawPanel />} {activeTool === "openclaw" && <OpenClawPanel />}
{activeTool === "automationcenter" && <AutomationCenter />} {activeTool === "automationcenter" && <AutomationCenter />}
{activeTool === "designstudio" && <DevCenter />}
</div> </div>
<Dialog open={showNewDashboardDialog} onOpenChange={setShowNewDashboardDialog}> <Dialog open={showNewDashboardDialog} onOpenChange={setShowNewDashboardDialog}>