@danhachuel/leadmaster 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,59 @@
1
+ # Changelog
2
+
3
+ Todas as mudanças notáveis deste projeto serão documentadas neste ficheiro.
4
+ O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/).
5
+
6
+ A etiqueta visual de versão usa patch de dois dígitos (ex.: `0.1.00`); o registry NPM
7
+ normaliza para a forma canônica (ex.: `0.1.0`).
8
+
9
+ ## [0.1.00] — 2026-10-23
10
+
11
+ ### Adicionado
12
+
13
+ - **Versão inicial do LeadMaster** — SaaS local de prospecção e automação de conteúdo,
14
+ instalável via `npx @danhachuel/leadmaster` e 100% offline (sem nuvem).
15
+ - **Launcher NPM** (`scripts/cli.mjs`): comandos `install`, `start`, `doctor`, `version`,
16
+ `help`; **comando único auto-suficiente** (estilo Thunderbolt) — `npx
17
+ @danhachuel/leadmaster` sem argumentos verifica e prepara tudo sozinho antes de subir;
18
+ **instalação idempotente** (dependências Python e Node só são instaladas/atualizadas
19
+ quando realmente faltam; interface só é reconstruída quando o build não existe ou
20
+ falha por deps desatualizadas); resolução da pasta de dados (`--home` /
21
+ `LEADMASTER_HOME`, padrão `Documents/REPOSITORIO/LeadMaster`); instalação automática
22
+ das dependências Python; porta padrão da UI/API **5055** com auto-incremento (5056,
23
+ 5057, ...) quando ocupada; deteção de instância já ativa; abertura automática do
24
+ navegador; encerramento limpo.
25
+ - **Workflow de publicação** (`.github/workflows/publish-npm.yml`): build do frontend,
26
+ validação de metadados, smoke-test do launcher, publicação via `dist-tag next`,
27
+ verificação de tarball e promoção a `latest` por tag `v*`.
28
+ - **Backend FastAPI** (`backend/`):
29
+ - Persistência local em JSON (`storage/leads.json`, `campaigns.json`, `pipeline.json`,
30
+ `config.json`) com escrita atômica e seeds automáticas.
31
+ - CRUD de leads com importação em massa, agente de CRM (sugestão de movimentação e
32
+ enriquecimento via BrasilAPI/LLM).
33
+ - Campanhas de disparo com execução em background, contadores e log por lead.
34
+ - Motor do pipeline de vídeos faceless com 5 etapas (roteiro, thumbnail/título,
35
+ produção wide 16:9, produção shorts 9:16, upload), controle
36
+ iniciar/pausar/parar/repetir, logs por etapa e agendamento de publicação
37
+ (não listado → 1h → público).
38
+ - Integrações: MoneyPrinterTurbo (localhost:8080), Short-Video-Maker (localhost:3123),
39
+ OpenMontage (CLI), upload YouTube com limite de 50/dia e fallback
40
+ `youtube-uploader-mcp`, LLM OpenAI-compatível, OpenOutreach, pipecat.
41
+ - Extratores de leads: Google Maps (`gosom/google-maps-scraper`), Instagram
42
+ (`lucasoal/igmapper`), CNPJ (BrasilAPI + provedor de busca por CNAE/UF +
43
+ `D4Vinci/Scrapling`).
44
+ - Endpoints de diagnóstico (`/api/health`, `/api/doctor`), métricas do painel e
45
+ serving estático da UI construída (modo `npx`).
46
+ - **Frontend React 18 + Vite + TypeScript + Tailwind** (`frontend/`):
47
+ - UI fiel ao protótipo `LeadMaster v1.0` (sidebar `#1e1b4b`, cards brancos, gradientes
48
+ indigo/purple, Font Awesome) com as 7 Leis de UX aplicadas; **favicon de urso** nas
49
+ guias dos navegadores (`frontend/public/favicon.svg`).
50
+ - Páginas: Painel (métricas + gráficos Chart.js), Leads (CRUD + progresso de
51
+ preenchimento), CRM Kanban (`@dnd-kit` — Leads/Em contato/Proposta/Fechado),
52
+ Disparos (campanhas), Extratores (Google Maps/Instagram/CNPJ), Pipeline de vídeos,
53
+ Agentes (disparo/atendimento), Ferramentas (configuração de chaves e caminhos),
54
+ Webhook e Suporte (diagnóstico).
55
+ - Componentes: Sidebar, Header, MetricCard, ProgressBar, Accordion, Modal, Toast,
56
+ StatusBadge, gráficos (barras horizontais e doughnut) e Kanban com drag-and-drop.
57
+ - **Documentação**: `README.md` (instalação, arquitetura, integrações), `AGENTS.md`
58
+ (regras de projeto, versionamento `MAJOR.MINOR.PATCH` com patch de dois dígitos,
59
+ release via GitHub Actions, push obrigatório, CHANGELOG obrigatório) e `LICENSE` (MIT).
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dan Pariente Hachuel
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,129 @@
1
- # Temporary Holding Version
1
+ # LeadMaster
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ **SaaS local de prospecção e automação de conteúdo.** CRM, extratores de leads, agentes de
4
+ IA e um pipeline completo de geração de vídeos faceless (YouTube e Shorts) — instalável via
5
+ `npx`, 100% local, sem nuvem e sem banco de dados externo.
6
+
7
+ ![Stack](https://img.shields.io/badge/React%2018-Vite%20%2B%20TS-61dafb) ![Backend](https://img.shields.io/badge/FastAPI-Python%203.11%2B-009688) ![Storage](https://img.shields.io/badge/storage-JSON%20local-orange)
8
+
9
+ ---
10
+
11
+ ## Instalação e uso
12
+
13
+ Requisitos: **Node 18+** e **Python 3.11+** no PATH.
14
+
15
+ ```cmd
16
+ :: CMD / MobaXterm (Windows)
17
+ npx.cmd --yes --prefer-online @danhachuel/leadmaster@0.1.0 install
18
+ npx.cmd --yes --prefer-online @danhachuel/leadmaster@0.1.0
19
+ ```
20
+
21
+ ```bash
22
+ # Linux / macOS / PowerShell
23
+ npx --yes @danhachuel/leadmaster@0.1.0 install
24
+ npx --yes @danhachuel/leadmaster@0.1.0
25
+ ```
26
+
27
+ - `install` prepara a pasta de dados e instala as dependências Python.
28
+ - Sem argumentos, o launcher sobe o servidor local (FastAPI na porta **5055**) e abre o
29
+ navegador automaticamente. Se a porta 5055 estiver ocupada, o LeadMaster sobe
30
+ automaticamente na próxima livre (5056, 5057, ...). Pressione `Ctrl+C` para encerrar.
31
+ - Flags úteis: `--home=<caminho>` (pasta de dados), `--port=<numero>`,
32
+ `doctor` (diagnóstico), `help`.
33
+
34
+ A pasta de dados padrão é `Documents\REPOSITORIO\LeadMaster` (sobrescreva com
35
+ `--home` ou `LEADMASTER_HOME`). Todos os dados — leads, campanhas, pipeline e
36
+ configuração — ficam em `<home>\storage` como arquivos JSON.
37
+
38
+ ### Modo desenvolvimento (a partir do repositório)
39
+
40
+ ```bash
41
+ npm install # dependências da raiz (concurrently)
42
+ npm run dev # sobe backend (uvicorn :8000, reload) + frontend (Vite :5173)
43
+ ```
44
+
45
+ O Vite dev server sobe a UI de desenvolvimento em `http://localhost:5055` (com
46
+ auto-incremento para 5056, 5057... se a porta estiver ocupada) e faz proxy de `/api`
47
+ para `http://127.0.0.1:8000` (backend de desenvolvimento).
48
+
49
+ ---
50
+
51
+ ## Módulos
52
+
53
+ | Módulo | O que faz |
54
+ |---|---|
55
+ | **Painel** | Status da conexão, taxa de entrega, taxa de erro, total de leads; gráfico de barras (leads por etapa do CRM) e doughnut (campanhas: enviadas × erros). |
56
+ | **Leads** | CRUD completo, importação em massa a partir dos extratores, barra de progresso de preenchimento, enriquecimento por IA. |
57
+ | **CRM Kanban** | Drag-and-drop (@dnd-kit) nas colunas *Leads → Em contato → Proposta → Fechado*; o agente de IA sugere movimentações e enriquece os cards. |
58
+ | **Extratores** | **Google Maps** (palavra-chave + localização, via `gosom/google-maps-scraper`), **Instagram** (URL do perfil, via `lucasoal/igmapper`) e **CNPJ** (BrasilAPI + busca por CNAE/UF + `D4Vinci/Scrapling`). Toda extração gera pré-visualização antes de importar. |
59
+ | **Pipeline de vídeos** | Fluxo de 5 etapas com Iniciar/Pausar/Parar/Repetir: **Roteiro** (7–9k caracteres via LLM) → **Thumbnail/Título** → **Produção Wide 16:9** (MoneyPrinterTurbo/OpenMontage) → **Produção Shorts 9:16** (Short-Video-Maker) → **Upload** (não listado → aguarda 1h → público; até 50/dia, com fallback `youtube-uploader-mcp`). |
60
+ | **Disparos** | Campanhas de disparo (texto/áudio) com templates configuráveis e execução via `eracle/OpenOutreach`. |
61
+ | **Agentes** | Agente de disparo (prompts/templates) e agente de atendimento (texto via LLM ou voz via `pipecat-ai/pipecat`). |
62
+ | **Ferramentas** | Chaves de API, URLs das integrações locais, testes de conexão — tudo salvo em `config.json` local. |
63
+
64
+ ---
65
+
66
+ ## Arquitetura
67
+
68
+ ```
69
+ npx @danhachuel/leadmaster
70
+ └─ scripts/cli.mjs # instala deps Python, sobe uvicorn, abre navegador
71
+ └─ backend/main.py # FastAPI: API + serving da UI construída (frontend/dist)
72
+ ├─ services/storage.py # JSON local (leads, campanhas, pipeline, config)
73
+ ├─ services/pipeline.py # motor das 5 etapas (threads + checkpoints)
74
+ ├─ services/moneyprinter.py # POST localhost:8080/api/v1/videos
75
+ ├─ services/short_video_maker.py # POST localhost:3123/api/short-video
76
+ ├─ services/openmontage.py # CLI local
77
+ ├─ services/youtube_upload.py # upload + agendamento não listado → público
78
+ ├─ services/extractors.py # Maps / Instagram / CNPJ
79
+ ├─ services/crm_agent.py # sugestões + enriquecimento
80
+ ├─ services/agents.py # disparo (OpenOutreach) + atendimento
81
+ └─ services/llm.py # LLM OpenAI-compatível
82
+ ```
83
+
84
+ - **Portas**: LeadMaster UI/API `:5055` (auto-incrementa: 5056, 5057, ... se ocupada) ·
85
+ backend de desenvolvimento `:8000` · MoneyPrinterTurbo `:8080` · Short-Video-Maker `:3123`.
86
+ - **Degradación graciosa**: se um serviço externo não estiver rodando, a etapa falha com
87
+ mensagem acionável e um botão **Repetir** — nada de falsos sucessos.
88
+
89
+ ### Serviços externos (opcionais, todos locais)
90
+
91
+ | Serviço | Como usar no LeadMaster |
92
+ |---|---|
93
+ | [MoneyPrinterTurbo](https://github.com/harry0703/MoneyPrinterTurbo) | Suba em `http://localhost:8080` e configure em *Ferramentas*. |
94
+ | [Short-Video-Maker](https://github.com/lucasoal/short-video-maker) | Suba em `http://localhost:3123`. |
95
+ | [OpenMontage](https://github.com/openmotional/OpenMontage) | Informe o caminho do CLI em *Ferramentas*. |
96
+ | [gosom/google-maps-scraper](https://github.com/gosom/google-maps-scraper) | Informe o caminho do binário em *Ferramentas → Extratores*. |
97
+ | [lucasoal/igmapper](https://github.com/lucasoal/igmapper) | Informe o caminho em *Ferramentas → Extratores*. |
98
+ | BrasilAPI / OpenCNPJ / Scrapling | Consulta por CNPJ e busca por CNAE/UF (configuráveis). |
99
+ | [eracle/OpenOutreach](https://github.com/eracle/OpenOutreach) | Agente de disparo. |
100
+ | [pipecat-ai/pipecat](https://github.com/pipecat-ai/pipecat) | Atendimento por voz. |
101
+
102
+ ---
103
+
104
+ ## UX
105
+
106
+ A interface replica o protótipo `LeadMaster v1.0` (sidebar escura `#1e1b4b`, cards
107
+ brancos, gradientes indigo/purple) e aplica as **7 Leis de Usabilidade**:
108
+
109
+ 1. **Fitts** — CTAs grandes ("Iniciar Novo Vídeo", "Salvar").
110
+ 2. **Hick** — configurações avançadas em accordions.
111
+ 3. **Zeigarnik** — barras de progresso (pipeline e preenchimento de leads).
112
+ 4. **Jakob** — consistência com o modelo mental do protótipo (menu lateral fixo).
113
+ 5. **Gradiente de Meta** — "Faltam 2 etapas para o upload 🚀".
114
+ 6. **von Restorff** — botão principal com gradiente sobre fundo neutro.
115
+ 7. **Miller** — métricas agrupadas em cards (chunking).
116
+
117
+ ---
118
+
119
+ ## Versionamento e release
120
+
121
+ - Etiqueta visual: `MAJOR.MINOR.PATCH` com **patch de dois dígitos** (`0.1.00` → `0.1.99`
122
+ → `0.2.00`; `0.9.99` → `1.0.00`). O NPM normaliza para a forma canônica (`0.1.0`).
123
+ - Publicação **sempre** via GitHub Actions (`.github/workflows/publish-npm.yml`):
124
+ dispatch manual com `dist-tag next` → push da tag `vX.Y.ZZ` → promoção a `latest`.
125
+ - Toda versão precisa de entrada no `CHANGELOG.md`. Regras completas em `AGENTS.md`.
126
+
127
+ ## Licença
128
+
129
+ [MIT](LICENSE) © Dan Hachuel