@justmpm/comunicate 0.1.4 → 0.2.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/AGENTS.md +361 -353
- package/CLAUDE.md +336 -356
- package/README.md +147 -31
- package/dist/mcp-server.js +381 -47
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools/agent-communication.js +4 -4
- package/dist/mcp-tools/agent-communication.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -124,36 +124,134 @@ comunicate-cli generate-token
|
|
|
124
124
|
|
|
125
125
|
## 🛠️ Tools Disponíveis
|
|
126
126
|
|
|
127
|
-
### Comunicação
|
|
128
|
-
|
|
129
|
-
| Tool | Descrição |
|
|
130
|
-
|
|
131
|
-
| `send_agent_message` | Envia mensagem para outro agente |
|
|
132
|
-
| `get_agent_messages` | Lê mensagens da inbox |
|
|
133
|
-
| `get_unread_count` | Conta mensagens não lidas |
|
|
134
|
-
| `delete_message` | Deleta mensagem específica |
|
|
135
|
-
| `clear_read_messages` | Limpa mensagens lidas |
|
|
136
|
-
|
|
137
|
-
### Claims (Reserva de Arquivos)
|
|
138
|
-
|
|
139
|
-
| Tool | Descrição |
|
|
140
|
-
|
|
141
|
-
| `
|
|
142
|
-
| `
|
|
143
|
-
| `
|
|
144
|
-
| `
|
|
145
|
-
| `get_agent_claims` | Lista
|
|
146
|
-
| `get_all_claims` | Lista
|
|
127
|
+
### Comunicação entre Agentes
|
|
128
|
+
|
|
129
|
+
| Tool | Descrição | Quando Usar |
|
|
130
|
+
|------|-----------|-------------|
|
|
131
|
+
| `send_agent_message` | Envia mensagem para outro agente | Notificar progresso, solicitar ajuda, enviar updates |
|
|
132
|
+
| `get_agent_messages` | Lê mensagens da inbox | Verificar novas mensagens, processar pendências |
|
|
133
|
+
| `get_unread_count` | Conta mensagens não lidas | Verificação rápida sem carregar conteúdo |
|
|
134
|
+
| `delete_message` | Deleta mensagem específica | Limpar mensagens irrelevantes |
|
|
135
|
+
| `clear_read_messages` | Limpa mensagens lidas | Manutenção periódica da inbox |
|
|
136
|
+
|
|
137
|
+
### Sistema de Claims (Reserva de Arquivos)
|
|
138
|
+
|
|
139
|
+
| Tool | Descrição | Quando Usar |
|
|
140
|
+
|------|-----------|-------------|
|
|
141
|
+
| `can_edit_file` | Verifica permissão de edição | **SEMPRE** chame antes de editar qualquer arquivo |
|
|
142
|
+
| `claim_file` | Reserva arquivo para edição | Quando arquivo está fora do seu domínio |
|
|
143
|
+
| `renew_claim` | Renova reserva prestes a expirar | Quando faltarem < 5 min e edição não terminou |
|
|
144
|
+
| `release_file` | Libera arquivo reservado | Quando terminar edição antes da expiração |
|
|
145
|
+
| `get_agent_claims` | Lista suas reservas ativas | Verificar claims existentes e tempos |
|
|
146
|
+
| `get_all_claims` | Lista todas as reservas (admin) | Monitorar uso do sistema |
|
|
147
147
|
|
|
148
148
|
### Administração
|
|
149
149
|
|
|
150
|
-
| Tool | Descrição |
|
|
151
|
-
|
|
152
|
-
| `create_agent` | Cria novo agente |
|
|
153
|
-
| `list_agents` | Lista agentes registrados |
|
|
154
|
-
| `get_inactive_agents` | Lista agentes inativos |
|
|
150
|
+
| Tool | Descrição | Quando Usar |
|
|
151
|
+
|------|-----------|-------------|
|
|
152
|
+
| `create_agent` | Cria novo agente | Novo projeto, nova área de responsabilidade |
|
|
153
|
+
| `list_agents` | Lista agentes registrados | Ver configurações, descobrir agentIds |
|
|
154
|
+
| `get_inactive_agents` | Lista agentes inativos | Monitoramento de saúde do sistema |
|
|
155
155
|
|
|
156
|
-
## 📖
|
|
156
|
+
## 📖 Fluxos de Trabalho Comuns
|
|
157
|
+
|
|
158
|
+
### 1. Criar e Configurar Agentes
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Admin executa: create_agent
|
|
162
|
+
↓
|
|
163
|
+
Recebe token único (GUARDAR!)
|
|
164
|
+
↓
|
|
165
|
+
Entrega token ao respectivo agente
|
|
166
|
+
↓
|
|
167
|
+
Agente usa token em todas as operações
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### 2. Enviar e Receber Mensagens
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
Agente A: send_agent_message(tokenA, "agente-b", "API pronta!")
|
|
174
|
+
↓
|
|
175
|
+
Mensagem vai para inbox-agente-b.json
|
|
176
|
+
↓
|
|
177
|
+
Agente B: get_agent_messages(tokenB)
|
|
178
|
+
↓
|
|
179
|
+
Recebe e processa mensagem
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 3. Editar Arquivos (Verificação de Domínios)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Antes de editar QUALQUER arquivo:
|
|
186
|
+
|
|
187
|
+
Agente: can_edit_file(token, "src/types/api.ts")
|
|
188
|
+
↓
|
|
189
|
+
Se PERMITIDO → edite diretamente
|
|
190
|
+
↓
|
|
191
|
+
Se NEGADO (fora do domínio):
|
|
192
|
+
claim_file(token, "src/types/api.ts", 30, "Adicionando tipos")
|
|
193
|
+
↓
|
|
194
|
+
Edita o arquivo
|
|
195
|
+
↓
|
|
196
|
+
release_file(token, "src/types/api.ts") [opcional mas recomendado]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## 🔑 Conceitos Importantes
|
|
200
|
+
|
|
201
|
+
### Tokens
|
|
202
|
+
|
|
203
|
+
#### Admin Token
|
|
204
|
+
|
|
205
|
+
- Configurado na variável de ambiente `COMUNICATE_ADMIN_TOKEN` no arquivo de configuração do MCP
|
|
206
|
+
- Usado para validar operações administrativas (`create_agent`, `list_agents`, `get_inactive_agents`, `get_all_claims`)
|
|
207
|
+
- **Apenas o administrador do sistema** deve ter acesso a este token
|
|
208
|
+
- Serve como camada de segurança para garantir que apenas administradores possam gerenciar agentes
|
|
209
|
+
|
|
210
|
+
#### Agent Token
|
|
211
|
+
|
|
212
|
+
- Gerado pelo `create_agent` quando um admin cria um novo agente
|
|
213
|
+
- **CADA AGENTE TEM SEU PRÓPRIO TOKEN ÚNICO**
|
|
214
|
+
- Usado em TODAS as operações do agente (mensagens, claims, etc.)
|
|
215
|
+
- **GUARDE O TOKEN!** Não será mostrado novamente
|
|
216
|
+
|
|
217
|
+
### Segurança entre Agentes
|
|
218
|
+
|
|
219
|
+
O sistema garante que:
|
|
220
|
+
- ✅ Agentes normais não podem criar outros agentes (sem adminToken)
|
|
221
|
+
- ✅ Agentes normais não podem ver todos os claims do sistema (sem adminToken)
|
|
222
|
+
- ✅ Cada agente só acessa sua própria inbox
|
|
223
|
+
- ✅ Claims previnem conflitos de edição
|
|
224
|
+
|
|
225
|
+
### Domínios
|
|
226
|
+
|
|
227
|
+
Domínios são pastas onde um agente pode editar arquivos **sem precisar reservar**.
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
Exemplo:
|
|
231
|
+
Agente Frontend: domains = ["src/components", "src/pages"]
|
|
232
|
+
✅ Pode editar: src/components/Button.tsx
|
|
233
|
+
✅ Pode editar: src/pages/Home.tsx
|
|
234
|
+
❌ Não pode editar: src/api/users.ts (precisa de claim)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Claims (Reservas)
|
|
238
|
+
|
|
239
|
+
Um **claim** é uma reserva temporária de um arquivo fora do domínio do agente.
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
1. Agente verifica: can_edit_file → "File not in agent domains"
|
|
243
|
+
2. Agente reserva: claim_file → "Arquivo reservado por 30 min"
|
|
244
|
+
3. Agente edita o arquivo
|
|
245
|
+
4. Agente libera: release_file [ou espera expirar]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Regras:**
|
|
249
|
+
- Apenas um agente pode ter claim de um arquivo por vez
|
|
250
|
+
- Claims expiram automaticamente
|
|
251
|
+
- Renove quando faltarem < 5 minutos
|
|
252
|
+
- Libere assim que terminar para boa convivência
|
|
253
|
+
|
|
254
|
+
## 📋 Exemplos de Uso
|
|
157
255
|
|
|
158
256
|
### Criar um agente (admin)
|
|
159
257
|
|
|
@@ -166,27 +264,44 @@ comunicate-cli generate-token
|
|
|
166
264
|
}
|
|
167
265
|
```
|
|
168
266
|
|
|
267
|
+
**Retorno:**
|
|
268
|
+
```
|
|
269
|
+
✅ Agente backend criado
|
|
270
|
+
Token: a1b2c3d4e5f6789012345678abcdef00
|
|
271
|
+
|
|
272
|
+
⚠️ Guarde este token! Ele não será mostrado novamente.
|
|
273
|
+
```
|
|
274
|
+
|
|
169
275
|
### Enviar mensagem
|
|
170
276
|
|
|
171
277
|
```json
|
|
172
278
|
{
|
|
173
|
-
"token": "
|
|
279
|
+
"token": "a1b2c3d4e5f6789012345678abcdef00",
|
|
174
280
|
"recipientId": "frontend",
|
|
175
|
-
"message": "API pronta!",
|
|
281
|
+
"message": "API /users pronta! Contrato: { id, name, email }",
|
|
176
282
|
"type": "task_update",
|
|
177
283
|
"priority": "high"
|
|
178
284
|
}
|
|
179
285
|
```
|
|
180
286
|
|
|
181
|
-
###
|
|
287
|
+
### Verificar e reservar arquivo
|
|
182
288
|
|
|
183
289
|
```json
|
|
290
|
+
// 1. Verificar permissão
|
|
291
|
+
{
|
|
292
|
+
"token": "a1b2c3d4e5f6789012345678abcdef00",
|
|
293
|
+
"filePath": "src/types/api.ts"
|
|
294
|
+
}
|
|
295
|
+
// Retorno: ❌ Não pode editar (fora do domínio)
|
|
296
|
+
|
|
297
|
+
// 2. Reservar
|
|
184
298
|
{
|
|
185
|
-
"token": "
|
|
299
|
+
"token": "a1b2c3d4e5f6789012345678abcdef00",
|
|
186
300
|
"filePath": "src/types/api.ts",
|
|
187
301
|
"durationMinutes": 30,
|
|
188
|
-
"reason": "
|
|
302
|
+
"reason": "Definindo contratos da API"
|
|
189
303
|
}
|
|
304
|
+
// Retorno: ✅ Arquivo reservado até 2026-02-08T23:30:00Z
|
|
190
305
|
```
|
|
191
306
|
|
|
192
307
|
## 🔒 Segurança
|
|
@@ -195,6 +310,7 @@ comunicate-cli generate-token
|
|
|
195
310
|
- **Retry com Backoff**: Escrita atômica com retry automático
|
|
196
311
|
- **Claims Auto-Limpo**: Expirados são removidos automaticamente
|
|
197
312
|
- **Sequence em Claims**: Prevenção de race conditions
|
|
313
|
+
- **Separação de Domínios**: Agentes só acessam arquivos autorizados
|
|
198
314
|
|
|
199
315
|
## 🖥️ Otimizado para Windows
|
|
200
316
|
|