primocode 7.0.3 → 7.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/README.md +78 -76
- package/bin/primocode.js +243 -225
- package/lib/act.js +120 -116
- package/lib/api.js +110 -17
- package/lib/browser.js +492 -492
- package/lib/config.js +105 -52
- package/lib/desktop.js +142 -142
- package/lib/tools.js +147 -104
- package/lib/ui.js +165 -161
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,129 +1,131 @@
|
|
|
1
|
-
# PrimoCode
|
|
1
|
+
# PrimoCode v7.1.0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Agente de engenharia brasileiro para o terminal, no estilo Claude Code.
|
|
4
|
+
Cria arquivos de verdade, roda comandos, abre o navegador — e lembra do que fez
|
|
5
|
+
entre uma sessão e outra.
|
|
4
6
|
|
|
5
|
-
**Novidades v6.0:**
|
|
6
|
-
- 🎨 Interface estilo Claude Code — minimalista e elegante
|
|
7
|
-
- ⚡ Auto-instalação de Node.js quando não detectado (Y/n)
|
|
8
|
-
- 🚀 Pipeline de qualidade máxima com 3 IAs
|
|
9
|
-
- 🛠️ Modo Act com tool-calling nativo (write_file, run_shell, browser_*)
|
|
10
|
-
|
|
11
|
-
## Instalação rápida
|
|
12
|
-
|
|
13
|
-
### Linux / macOS / WSL
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
curl -fsSL https://raw.githubusercontent.com/ConectaPrimoAI/primocode/main/install.sh | bash
|
|
17
7
|
```
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
curl -fsSL https://raw.githubusercontent.com/ConectaPrimoAI/primocode/main/install.cmd -o install.cmd && install.cmd
|
|
8
|
+
╷
|
|
9
|
+
╭─┴─╮ PrimoCode
|
|
10
|
+
│◕ ◕│ v7.1.0
|
|
11
|
+
╰───╯ projeto: jogo-de-carro
|
|
23
12
|
```
|
|
24
13
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
### Manual (qualquer SO)
|
|
14
|
+
## Instalação
|
|
28
15
|
|
|
29
16
|
```bash
|
|
30
17
|
git clone https://github.com/ConectaPrimoAI/primocode.git
|
|
31
18
|
cd primocode
|
|
32
|
-
npm install
|
|
33
19
|
npm link # registra 'primocode' globalmente
|
|
34
20
|
primocode
|
|
35
21
|
```
|
|
36
22
|
|
|
37
|
-
Requer **Node.js 18.17+**.
|
|
23
|
+
Requer **Node.js 18.17+**. O CLI não tem dependências — só a stdlib do Node.
|
|
38
24
|
|
|
39
|
-
##
|
|
25
|
+
## Como funciona
|
|
40
26
|
|
|
41
|
-
|
|
27
|
+
Todo trabalho acontece dentro de uma **pasta de projeto**, em `~/primocode/`:
|
|
42
28
|
|
|
43
|
-
```
|
|
44
|
-
primocode
|
|
29
|
+
```
|
|
30
|
+
~/primocode/
|
|
31
|
+
├── memory-geral.md <- sobre você: nome, preferências, convenções
|
|
32
|
+
├── jogo-de-carro/
|
|
33
|
+
│ ├── memory.md <- o que este projeto é e o que já foi decidido
|
|
34
|
+
│ ├── index.html
|
|
35
|
+
│ └── src/game.js
|
|
36
|
+
└── site-de-vendas/
|
|
37
|
+
├── memory.md
|
|
38
|
+
└── ...
|
|
45
39
|
```
|
|
46
40
|
|
|
47
|
-
|
|
41
|
+
Ao receber o primeiro pedido da sessão, o PrimoCode deriva um nome de projeto
|
|
42
|
+
do que você pediu. Se já existir um projeto parecido, ele **pergunta** antes de
|
|
43
|
+
criar pasta nova:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Primo Code ❯ faça um jogo de carro 2D
|
|
47
|
+
|
|
48
|
+
Já existe um projeto parecido: jogo-de-carro
|
|
49
|
+
? Continuar nele? (S/n)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Os dois arquivos de memória são lidos no começo de cada tarefa e atualizados no
|
|
53
|
+
fim. É por isso que a IA não esquece o projeto entre sessões.
|
|
54
|
+
|
|
55
|
+
## Modos
|
|
56
|
+
|
|
57
|
+
| Modo | O que faz |
|
|
58
|
+
|---|---|
|
|
59
|
+
| **Primo Code** (padrão) | Agente completo — cria arquivos, roda comandos, abre o navegador |
|
|
60
|
+
| **Chat** | Conversa pura, sem tools |
|
|
61
|
+
|
|
62
|
+
Alterne com `/mode primocode` ou `/mode chat`.
|
|
63
|
+
|
|
64
|
+
## Uso
|
|
48
65
|
|
|
49
66
|
```bash
|
|
50
|
-
primocode
|
|
51
|
-
primocode
|
|
52
|
-
primocode -f app.js "
|
|
67
|
+
primocode # interativo
|
|
68
|
+
primocode "crie um jogo de carro" # one-shot
|
|
69
|
+
primocode -f app.js "onde está o bug?" # com arquivo anexado
|
|
53
70
|
```
|
|
54
71
|
|
|
55
|
-
|
|
72
|
+
## Comandos
|
|
56
73
|
|
|
57
74
|
| Comando | Descrição |
|
|
58
75
|
|---|---|
|
|
59
|
-
| `/
|
|
60
|
-
| `/mode
|
|
76
|
+
| `/project` | Lista projetos. `/project <nome>` cria ou entra em um |
|
|
77
|
+
| `/mode primocode\|chat` | Alterna o modo |
|
|
61
78
|
| `/model main\|fast` | main = llama-3.3-70b, fast = llama-3.1-8b |
|
|
62
|
-
| `/attach <arquivo>` | Anexa arquivo ao próximo
|
|
63
|
-
| `/detach` | Remove anexos |
|
|
64
|
-
| `/
|
|
65
|
-
| `/
|
|
66
|
-
| `/
|
|
67
|
-
| `/
|
|
68
|
-
| `/
|
|
69
|
-
| `/
|
|
70
|
-
| `/
|
|
71
|
-
| `/clear` | Limpa histórico |
|
|
72
|
-
| `/cls` | Limpa tela |
|
|
79
|
+
| `/attach <arquivo>` | Anexa arquivo ao próximo pedido |
|
|
80
|
+
| `/detach` · `/files` | Remove / lista anexos |
|
|
81
|
+
| `/tree [n]` | Árvore do projeto atual |
|
|
82
|
+
| `/read <arquivo>` | Mostra um arquivo do projeto |
|
|
83
|
+
| `/run <comando>` | Executa no shell, dentro da pasta do projeto |
|
|
84
|
+
| `/open <arquivo\|url>` | Abre no navegador |
|
|
85
|
+
| `/status` | Health check do servidor |
|
|
86
|
+
| `/clear` · `/cls` | Limpa conversa / tela |
|
|
87
|
+
| `/uninstall` | Remove o PrimoCode (seus projetos ficam) |
|
|
73
88
|
| `/exit` | Sair |
|
|
74
89
|
|
|
75
90
|
## Configuração
|
|
76
91
|
|
|
77
|
-
|
|
92
|
+
`~/.primocode/config.json`:
|
|
78
93
|
|
|
79
94
|
```json
|
|
80
95
|
{
|
|
81
96
|
"server": "https://primocode-server.onrender.com",
|
|
82
|
-
"model": "main"
|
|
97
|
+
"model": "main",
|
|
98
|
+
"token": null
|
|
83
99
|
}
|
|
84
100
|
```
|
|
85
101
|
|
|
86
|
-
Ou por variável de ambiente:
|
|
102
|
+
Ou por variável de ambiente — elas têm prioridade:
|
|
87
103
|
|
|
88
104
|
```bash
|
|
89
105
|
export PRIMOCODE_SERVER="https://primocode-server.onrender.com"
|
|
90
106
|
export PRIMOCODE_MODEL="main"
|
|
107
|
+
export PRIMOCODE_TOKEN="..." # só se o servidor exigir
|
|
91
108
|
```
|
|
92
109
|
|
|
93
|
-
##
|
|
94
|
-
|
|
95
|
-
Ative com `--agent` ou `/mode agent`. Roda 3 chamadas encadeadas:
|
|
96
|
-
|
|
97
|
-
1. **Arquiteto** — desenha a estrutura, sem código.
|
|
98
|
-
2. **Engenheiro** — implementa seguindo o plano.
|
|
99
|
-
3. **Revisor** — consolida, corrige, entrega versão final limpa.
|
|
100
|
-
|
|
101
|
-
Cada passo é transmitido em tempo real (streaming).
|
|
102
|
-
|
|
103
|
-
## Modo Act (autônomo com tools)
|
|
104
|
-
|
|
105
|
-
O modo padrão. A IA pode:
|
|
106
|
-
- Criar/editar arquivos (`write_file`)
|
|
107
|
-
- Ler arquivos (`read_file`)
|
|
108
|
-
- Listar diretórios (`list_dir`)
|
|
109
|
-
- Executar comandos shell (`run_shell`)
|
|
110
|
-
- Abrir terminal novo (`run_in_new_terminal`)
|
|
111
|
-
- Controlar o navegador (`browser_*`)
|
|
112
|
-
- Abrir páginas no browser (`open_in_browser`)
|
|
110
|
+
## Segurança
|
|
113
111
|
|
|
114
|
-
|
|
112
|
+
Todo caminho que o modelo pede é resolvido **dentro** da pasta do projeto.
|
|
113
|
+
Caminho absoluto ou com `../` é recusado — o agente não escreve fora da sua
|
|
114
|
+
área de trabalho.
|
|
115
115
|
|
|
116
116
|
## Arquitetura
|
|
117
117
|
|
|
118
118
|
```
|
|
119
|
-
┌────────────────┐ HTTPS/SSE ┌───────────────────┐
|
|
120
|
-
│ primocode CLI │ ─────────────► │ primocode-server │
|
|
121
|
-
│ (seu terminal)│ ◄─────────────
|
|
122
|
-
└────────────────┘
|
|
119
|
+
┌────────────────┐ HTTPS/SSE ┌───────────────────┐ HTTPS ┌──────────┐
|
|
120
|
+
│ primocode CLI │ ─────────────► │ primocode-server │ ────────► │ Groq │
|
|
121
|
+
│ (seu terminal)│ ◄───────────── │ (Render) │ ◄──────── │ API │
|
|
122
|
+
└────────────────┘ └───────────────────┘ └──────────┘
|
|
123
|
+
executa as tools monta o prompt
|
|
124
|
+
localmente e fala com o modelo
|
|
123
125
|
```
|
|
124
126
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
+
As tools rodam **no seu computador** — o servidor nunca toca nos seus arquivos.
|
|
128
|
+
Ele decide o que fazer; o CLI faz e devolve o resultado.
|
|
127
129
|
|
|
128
130
|
## Licença
|
|
129
131
|
|