fayzfayz sdk

04 · Adicionar um plugin

Adicionar uma capacidade ao app é uma linha de JSON. Você liga um plugin do catálogo no manifesto e a navegação e as telas crescem sozinhas — você não escreve rotas, o core deriva do plugin.

Ligue o plugin no manifesto

Os pacotes de plugin já vêm nas dependências do app gerado — @fayz-ai/plugin-crm, plugin-tasks, plugin-agenda, plugin-financial, plugin-inventory e outros já estão no package.json. Ligar um é adicionar seu id à lista plugins da surface.

Abra o app.manifest.json e adicione crm (e, de brinde, tasks) ao lado do dashboard:

{
  "surfaces": {
    "admin": {
      "scaffold": "admin",
      "plugins": [
        { "id": "dashboard" },
        { "id": "crm" },
        { "id": "tasks" }
      ]
    }
  }
}

Salve. Você não precisa mexer no src/plugins.generated.ts por enquanto — a pré-visualização local valida a fiação pelo manifesto; as telas completas vêm do runtime que consome essa mesma lista.

Confirme com o doctor

npx @fayz-ai/cli doctor
⚠ manifest references plugin(s) [dashboard, crm, tasks] — each id must resolve to an installed @fayz-ai/plugin-* factory wired in src/plugins.generated.ts or src/config/app.tsx

0 error(s), 1 warning(s)

Repare que a lista do aviso cresceu: dashboard, crm, tasks. O doctor está lendo o manifesto e lembrando que cada id precisa corresponder a um pacote @fayz-ai/plugin-* instalado — que já veio nas dependências do app gerado.

✓ Você deve ver: os três ids — dashboard, crm, tasks — no aviso do doctor, com 0 error(s). Se você digitar um id que não existe no catálogo, é aqui que o erro aparece.

O que acontece na navegação

Cada plugin declara sua própria navegação e rotas no manifesto do plugin. Quando você o liga na surface, o runtime da plataforma injeta o item de menu e as telas correspondentes — o CRM adiciona a seção de contatos, o Tasks adiciona o quadro de tarefas. É por isso que você nunca edita um roteador: a navegação é derivada da lista de plugins.

Onde a mudança aparece: as telas e o menu dos plugins são renderizados pelo runtime completo da plataforma Fayz, que consome esta mesma lista. A pré-visualização local de hoje é uma tela-âncora, então o passo se valida pelo doctor (a capacidade está corretamente ligada). Para navegar pelo catálogo completo de plugins disponíveis, veja a seção Plugins.

Antes de seguir, deixe só dashboard na lista se quiser um app enxuto para o próximo passo — ou mantenha os três; qualquer um funciona com o Supabase.


← Anterior: 03 · Tema e marca · Próximo: 05 · Dados reais com Supabase →