@justmpm/comunicate 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.
Files changed (54) hide show
  1. package/AGENTS.md +518 -0
  2. package/CLAUDE.md +518 -0
  3. package/LICENSE +21 -0
  4. package/README.md +159 -0
  5. package/dist/cli.d.ts +6 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +117 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/comunicate/core/auth.d.ts +60 -0
  10. package/dist/comunicate/core/auth.d.ts.map +1 -0
  11. package/dist/comunicate/core/auth.js +150 -0
  12. package/dist/comunicate/core/auth.js.map +1 -0
  13. package/dist/comunicate/core/domains.d.ts +55 -0
  14. package/dist/comunicate/core/domains.d.ts.map +1 -0
  15. package/dist/comunicate/core/domains.js +157 -0
  16. package/dist/comunicate/core/domains.js.map +1 -0
  17. package/dist/comunicate/core/index.d.ts +9 -0
  18. package/dist/comunicate/core/index.d.ts.map +1 -0
  19. package/dist/comunicate/core/index.js +9 -0
  20. package/dist/comunicate/core/index.js.map +1 -0
  21. package/dist/comunicate/core/messaging.d.ts +50 -0
  22. package/dist/comunicate/core/messaging.d.ts.map +1 -0
  23. package/dist/comunicate/core/messaging.js +224 -0
  24. package/dist/comunicate/core/messaging.js.map +1 -0
  25. package/dist/comunicate/core/notifications.d.ts +26 -0
  26. package/dist/comunicate/core/notifications.d.ts.map +1 -0
  27. package/dist/comunicate/core/notifications.js +107 -0
  28. package/dist/comunicate/core/notifications.js.map +1 -0
  29. package/dist/comunicate/core/persistence.d.ts +28 -0
  30. package/dist/comunicate/core/persistence.d.ts.map +1 -0
  31. package/dist/comunicate/core/persistence.js +113 -0
  32. package/dist/comunicate/core/persistence.js.map +1 -0
  33. package/dist/comunicate/index.d.ts +11 -0
  34. package/dist/comunicate/index.d.ts.map +1 -0
  35. package/dist/comunicate/index.js +27 -0
  36. package/dist/comunicate/index.js.map +1 -0
  37. package/dist/comunicate/types/index.d.ts +5 -0
  38. package/dist/comunicate/types/index.d.ts.map +1 -0
  39. package/dist/comunicate/types/index.js +5 -0
  40. package/dist/comunicate/types/index.js.map +1 -0
  41. package/dist/comunicate/types/message.d.ts +21 -0
  42. package/dist/comunicate/types/message.d.ts.map +1 -0
  43. package/dist/comunicate/types/message.js +5 -0
  44. package/dist/comunicate/types/message.js.map +1 -0
  45. package/dist/mcp-server.d.ts +7 -0
  46. package/dist/mcp-server.d.ts.map +1 -0
  47. package/dist/mcp-server.js +314 -0
  48. package/dist/mcp-server.js.map +1 -0
  49. package/dist/mcp-tools/agent-communication.d.ts +342 -0
  50. package/dist/mcp-tools/agent-communication.d.ts.map +1 -0
  51. package/dist/mcp-tools/agent-communication.js +378 -0
  52. package/dist/mcp-tools/agent-communication.js.map +1 -0
  53. package/mcp-config.json +15 -0
  54. package/package.json +44 -0
package/CLAUDE.md ADDED
@@ -0,0 +1,518 @@
1
+ # @justmpm/comunicate - Guia Completo
2
+
3
+ Sistema de Comunicação Entre Agentes usando arquivos JSON locais (File-Based Architecture) otimizado para Windows.
4
+
5
+ ---
6
+
7
+ ## 📋 Índice
8
+
9
+ 1. [Visão Geral](#visão-geral)
10
+ 2. [Arquitetura](#arquitetura)
11
+ 3. [Instalação](#instalação)
12
+ 4. [Configuração](#configuração)
13
+ 5. [Tools MCP](#tools-mcp)
14
+ 6. [Fluxos de Trabalho](#fluxos-de-trabalho)
15
+ 7. [CLI](#cli)
16
+ 8. [Exemplos](#exemplos)
17
+ 9. [Segurança](#segurança)
18
+ 10. [Troubleshooting](#troubleshooting)
19
+
20
+ ---
21
+
22
+ ## Visão Geral
23
+
24
+ O **@justmpm/comunicate** é um servidor MCP (Model Context Protocol) que permite comunicação entre múltiplos agentes através de arquivos JSON locais.
25
+
26
+ ### Por que File-Based?
27
+
28
+ - ✅ **Zero dependências** - Sem banco de dados ou servidor externo
29
+ - ✅ **Portátil** - Viaja com o projeto (controle de versão)
30
+ - ✅ **Debug fácil** - Arquivos JSON human-readable
31
+ - ✅ **No-lock** - Cada agente escreve apenas no seu próprio arquivo
32
+ - ✅ **Otimizado Windows** - File system nativo
33
+
34
+ ### Conceitos Fundamentais
35
+
36
+ | Conceito | Descrição |
37
+ |----------|-----------|
38
+ | **Agente** | Entidade que pode enviar/receber mensagens |
39
+ | **Inbox** | Caixa de entrada exclusiva de cada agente |
40
+ | **Domínio** | Diretórios que um agente pode editar naturalmente |
41
+ | **Claim** | Reserva temporária de arquivo fora do domínio |
42
+ | **Heartbeat** | Sinal de vida do agente |
43
+
44
+ ---
45
+
46
+ ## Arquitetura
47
+
48
+ ```
49
+ .comunicate/
50
+ ├── registry/
51
+ │ ├── agents.json # Registro de agentes (com heartbeat)
52
+ │ ├── tasks.json # Tarefas
53
+ │ └── claims.json # Arquivos reservados (com sequence)
54
+ ├── messages/
55
+ │ ├── inbox-*.json # Caixas de entrada
56
+ │ └── archive/ # Mensagens arquivadas (gzip)
57
+ └── context/
58
+ ├── api-contracts.json
59
+ ├── decisions.json
60
+ └── progress.json
61
+ ```
62
+
63
+ ### Metáfora
64
+
65
+ > É como uma sala de equipe onde cada pessoa tem seu próprio quadro de avisos. Você só escreve no seu quadro, mas pode ler os dos outros. Se precisar escrever no quadro de outra pessoa, você precisa pedir permissão (claim).
66
+
67
+ ---
68
+
69
+ ## Instalação
70
+
71
+ ### Pré-requisitos
72
+
73
+ - Node.js 18+
74
+ - Windows (otimizado para este SO)
75
+
76
+ ### Passo a Passo
77
+
78
+ ```powershell
79
+ # 1. Clone ou copie o projeto
80
+ cd comunicate-ai
81
+
82
+ # 2. Instale dependências
83
+ npm install
84
+
85
+ # 3. Compile TypeScript
86
+ npm run build
87
+
88
+ # 4. Execute setup automatizado
89
+ powershell -ExecutionPolicy Bypass -File setup.ps1
90
+ ```
91
+
92
+ O script `setup.ps1` irá:
93
+ - Criar estrutura de pastas
94
+ - Gerar arquivos JSON iniciais
95
+ - Criar token de admin
96
+ - Mostrar configuração para Claude
97
+
98
+ ---
99
+
100
+ ## Configuração
101
+
102
+ ### 1. Configurar Token de Admin
103
+
104
+ ```powershell
105
+ # Temporário (sessão atual)
106
+ $env:COMUNICATE_ADMIN_TOKEN="seu-token-aqui"
107
+
108
+ # Permanente (Windows)
109
+ [Environment]::SetEnvironmentVariable("COMUNICATE_ADMIN_TOKEN", "seu-token-aqui", "User")
110
+ ```
111
+
112
+ ### 2. Configurar Claude Desktop
113
+
114
+ Edite `%APPDATA%\Claude\settings.json`:
115
+
116
+ ```json
117
+ {
118
+ "mcpServers": {
119
+ "@justmpm/comunicate": {
120
+ "command": "node",
121
+ "args": [
122
+ "C:/caminho/completo/para/dist/mcp-server.js"
123
+ ],
124
+ "env": {
125
+ "COMUNICATE_ADMIN_TOKEN": "seu-token-aqui"
126
+ }
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ > ⚠️ **IMPORTANTE**: Use barras normais (`/`) ou duplas barras invertidas (`\\`) nos caminhos Windows.
133
+
134
+ ### 3. Reinicie o Claude Desktop
135
+
136
+ Após configurar, feche e reabra o Claude Desktop.
137
+
138
+ ---
139
+
140
+ ## Tools MCP
141
+
142
+ ### Comunicação
143
+
144
+ #### `send_agent_message`
145
+ Envia mensagem para outro agente.
146
+
147
+ ```json
148
+ {
149
+ "token": "token-do-agente",
150
+ "recipientId": "frontend",
151
+ "message": "API pronta!",
152
+ "type": "task_update",
153
+ "priority": "high"
154
+ }
155
+ ```
156
+
157
+ **Tipos:** `text`, `assistance_request`, `task_update`, `notification`
158
+ **Prioridades:** `low`, `normal`, `high`, `urgent`
159
+
160
+ ---
161
+
162
+ #### `get_agent_messages`
163
+ Lê mensagens da inbox.
164
+
165
+ ```json
166
+ {
167
+ "token": "token-do-agente",
168
+ "includeRead": false,
169
+ "markAsRead": true,
170
+ "limit": 10
171
+ }
172
+ ```
173
+
174
+ ---
175
+
176
+ #### `get_unread_count`
177
+ Retorna número de mensagens não lidas.
178
+
179
+ ```json
180
+ {
181
+ "token": "token-do-agente"
182
+ }
183
+ ```
184
+
185
+ ---
186
+
187
+ ### Claims (Reserva de Arquivos)
188
+
189
+ #### `claim_file`
190
+ Reserva arquivo fora do domínio para edição.
191
+
192
+ ```json
193
+ {
194
+ "token": "token-do-agente",
195
+ "filePath": "src/types/api.ts",
196
+ "durationMinutes": 30,
197
+ "reason": "Adicionando tipos da API"
198
+ }
199
+ ```
200
+
201
+ > O claim expira automaticamente após o tempo definido.
202
+
203
+ ---
204
+
205
+ #### `renew_claim`
206
+ Renova um claim prestes a expirar (só funciona se faltarem < 5 min).
207
+
208
+ ```json
209
+ {
210
+ "token": "token-do-agente",
211
+ "filePath": "src/types/api.ts",
212
+ "additionalMinutes": 15
213
+ }
214
+ ```
215
+
216
+ ---
217
+
218
+ #### `release_file`
219
+ Libera um arquivo reservado antes do tempo.
220
+
221
+ ```json
222
+ {
223
+ "token": "token-do-agente",
224
+ "filePath": "src/types/api.ts"
225
+ }
226
+ ```
227
+
228
+ ---
229
+
230
+ #### `can_edit_file`
231
+ Verifica se pode editar um arquivo (domínio ou claim ativo).
232
+
233
+ ```json
234
+ {
235
+ "token": "token-do-agente",
236
+ "filePath": "src/components/Button.tsx"
237
+ }
238
+ ```
239
+
240
+ ---
241
+
242
+ ### Administração (requer token de admin)
243
+
244
+ #### `create_agent`
245
+ Cria novo agente.
246
+
247
+ ```json
248
+ {
249
+ "adminToken": "token-admin",
250
+ "agentId": "backend",
251
+ "capabilities": ["api", "database", "auth"],
252
+ "domains": ["src/api", "src/models"]
253
+ }
254
+ ```
255
+
256
+ **Regras para agentId:**
257
+ - Apenas letras minúsculas, números e hífens
258
+ - Exemplos válidos: `backend`, `frontend-v2`, `test-runner`
259
+
260
+ ---
261
+
262
+ #### `list_agents`
263
+ Lista todos os agentes registrados.
264
+
265
+ ```json
266
+ {
267
+ "adminToken": "token-admin"
268
+ }
269
+ ```
270
+
271
+ ---
272
+
273
+ #### `get_inactive_agents`
274
+ Lista agentes sem heartbeat (possivelmente "mortos").
275
+
276
+ ```json
277
+ {
278
+ "adminToken": "token-admin",
279
+ "timeoutMinutes": 5
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Fluxos de Trabalho
286
+
287
+ ### Fluxo 1: Criar Agente e Enviar Mensagem
288
+
289
+ ```
290
+ 1. Admin executa: create_agent
291
+ → Recebe token único do agente
292
+
293
+ 2. Agente salva seu token
294
+
295
+ 3. Agente A executa: send_agent_message
296
+ → Mensagem vai para inbox-B.json
297
+
298
+ 4. Agente B executa: get_agent_messages
299
+ → Lê e processa mensagens
300
+ ```
301
+
302
+ ### Fluxo 2: Coordenação com Claims
303
+
304
+ ```
305
+ Backend (domínio: src/models):
306
+ ✅ Pode editar: src/models/user.ts
307
+ ❌ Não pode: src/components/Button.tsx
308
+
309
+ Frontend (domínio: src/components):
310
+ ✅ Pode editar: src/components/Button.tsx
311
+ ❌ Não pode: src/models/user.ts
312
+
313
+ Quando Frontend precisa editar src/types/api.ts:
314
+ 1. Executa: can_edit_file → false
315
+ 2. Executa: claim_file → success
316
+ 3. Executa: can_edit_file → true
317
+ 4. [edita o arquivo]
318
+ 5. Executa: release_file (ou espera expirar)
319
+ ```
320
+
321
+ ### Fluxo 3: Monitoramento de Saúde
322
+
323
+ ```
324
+ Cada agente deve:
325
+ - Chamar qualquer tool periodicamente (atualiza lastSeen)
326
+ - Ou chamar updateAgentHeartbeat() via código
327
+
328
+ Admin pode executar:
329
+ get_inactive_agents → lista agentes "zumbis"
330
+ ```
331
+
332
+ ---
333
+
334
+ ## CLI
335
+
336
+ Além das tools MCP, existe uma CLI para administração:
337
+
338
+ ```bash
339
+ # Listar agentes
340
+ npm run cli -- list-agents
341
+
342
+ # Criar agente
343
+ npm run cli -- create-agent backend
344
+
345
+ # Listar claims
346
+ npm run cli -- list-claims
347
+
348
+ # Verificar saúde
349
+ npm run cli -- check-health 5
350
+
351
+ # Gerar token aleatório
352
+ npm run cli -- generate-token
353
+ ```
354
+
355
+ ---
356
+
357
+ ## Exemplos
358
+
359
+ ### Exemplo 1: Backend notifica Frontend
360
+
361
+ ```typescript
362
+ // Backend envia atualização
363
+ const result = sendMessage(
364
+ BACKEND_TOKEN,
365
+ 'frontend',
366
+ 'API /users pronta! Contrato: { id, name, email }',
367
+ { type: 'task_update', priority: 'normal' }
368
+ );
369
+ ```
370
+
371
+ ### Exemplo 2: Frontend reserva arquivo
372
+
373
+ ```typescript
374
+ // Verifica se pode editar
375
+ const check = canEditFile('frontend', 'src/types/api.ts');
376
+ if (!check.allowed) {
377
+ // Reserva arquivo
378
+ const claim = claimFile(
379
+ 'frontend',
380
+ 'src/types/api.ts',
381
+ 30,
382
+ 'Adicionando tipos'
383
+ );
384
+
385
+ if (claim.success) {
386
+ // Agora pode editar
387
+ editFile('src/types/api.ts', ...);
388
+
389
+ // Libera quando terminar
390
+ releaseFile('frontend', 'src/types/api.ts');
391
+ }
392
+ }
393
+ ```
394
+
395
+ ### Exemplo 3: Notificações em tempo real
396
+
397
+ ```typescript
398
+ import { startNotificationListener } from './comunicate/core/notifications';
399
+
400
+ const listener = startNotificationListener('frontend', {
401
+ onMessage: (msg) => {
402
+ console.log(`Nova mensagem de ${msg.senderId}: ${msg.content}`);
403
+ }
404
+ });
405
+
406
+ // ... quando quiser parar:
407
+ listener.stop();
408
+ ```
409
+
410
+ ---
411
+
412
+ ## Segurança
413
+
414
+ ### Timing-Safe Comparison
415
+
416
+ Todos os tokens são comparados usando `crypto.timingSafeEqual()` para prevenir timing attacks.
417
+
418
+ ### Token de Admin
419
+
420
+ - Armazene em variável de ambiente `COMUNICATE_ADMIN_TOKEN`
421
+ - Nunca commite tokens em repositório
422
+ - Use tokens longos e aleatórios (32+ caracteres hex)
423
+
424
+ ### Claims
425
+
426
+ - Claims expiram automaticamente
427
+ - Só um agente pode ter claim de um arquivo por vez
428
+ - Sequence number previne race conditions
429
+
430
+ ### Domínios
431
+
432
+ - Defina domínios restritos ao criar agente
433
+ - Agente só edita arquivos dentro de seus domínios sem claim
434
+
435
+ ---
436
+
437
+ ## Troubleshooting
438
+
439
+ ### "Token inválido"
440
+
441
+ - Verifique se o token está completo (32 caracteres hex)
442
+ - Confirme que o agente está ativo (`list_agents`)
443
+ - Verifique se há espaços extras
444
+
445
+ ### "File claimed by X"
446
+
447
+ - Outro agente já reservou o arquivo
448
+ - Espere expirar ou peça para liberar
449
+ - Use `get_all_claims` (admin) para verificar
450
+
451
+ ### Mensagens não aparecem
452
+
453
+ - Verifique se está usando `includeRead: true`
454
+ - Confirme o `recipientId` no envio
455
+ - Verifique o arquivo inbox-*.json manualmente
456
+
457
+ ### File watcher não funciona
458
+
459
+ - O sistema tem fallback automático para polling
460
+ - No Windows, polling é mais confiável que file watcher
461
+ - Considere usar `startPolling()` explicitamente
462
+
463
+ ### Permissão negada ao escrever JSON
464
+
465
+ - Verifique permissões da pasta `.comunicate/`
466
+ - Execute como administrador se necessário
467
+ - Verifique se outro processo está usando os arquivos
468
+
469
+ ---
470
+
471
+ ## Dicas
472
+
473
+ 1. **Organize domínios por responsabilidade**
474
+ - `backend`: `src/api`, `src/models`
475
+ - `frontend`: `src/components`, `src/hooks`
476
+ - `shared`: `src/types`, `src/utils` (use claims)
477
+
478
+ 2. **Renove claims antes de expirar**
479
+ - Se uma tarefa demorar mais que o previsto
480
+ - Renove quando faltarem < 5 minutos
481
+
482
+ 3. **Use prioridades adequadamente**
483
+ - `urgent`: Bugs críticos, system down
484
+ - `high`: Features importantes, deadlines
485
+ - `normal`: Comunicação rotineira
486
+ - `low`: Informações, updates
487
+
488
+ 4. **Limpe mensagens lidas periodicamente**
489
+ - Use `clear_read_messages` para manter inbox limpa
490
+ - Mensagens antigas são arquivadas automaticamente
491
+
492
+ ---
493
+
494
+ ## Referência Rápida
495
+
496
+ ### Criar Agente
497
+ ```json
498
+ {"adminToken": "...", "agentId": "backend", "capabilities": ["api"], "domains": ["src/api"]}
499
+ ```
500
+
501
+ ### Enviar Mensagem
502
+ ```json
503
+ {"token": "...", "recipientId": "frontend", "message": "...", "type": "task_update", "priority": "normal"}
504
+ ```
505
+
506
+ ### Reservar Arquivo
507
+ ```json
508
+ {"token": "...", "filePath": "src/types/api.ts", "durationMinutes": 30, "reason": "..."}
509
+ ```
510
+
511
+ ### Ler Mensagens
512
+ ```json
513
+ {"token": "...", "includeRead": false, "markAsRead": true, "limit": 10}
514
+ ```
515
+
516
+ ---
517
+
518
+ **Versão 0.1.0** | Arquitetura File-Based | Otimizado para Windows
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 @justmpm/comunicate Contributors
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 ADDED
@@ -0,0 +1,159 @@
1
+ # @justmpm/comunicate
2
+
3
+ Sistema de Comunicação Entre Agentes usando arquivos JSON locais (File-Based Architecture).
4
+
5
+ ## 🎯 Visão Geral
6
+
7
+ O **@justmpm/comunicate** é um servidor MCP (Model Context Protocol) que permite comunicação entre múltiplos agentes através de arquivos JSON locais, eliminando a necessidade de banco de dados ou servidor dedicado.
8
+
9
+ **Conceitos Fundamentais:**
10
+ - **Pasta Local**: Tudo acontece dentro de `./.comunicate/` no projeto
11
+ - **JSON-First**: Dados persistidos em arquivos JSON human-readable
12
+ - **No-Lock**: Cada agente escreve apenas no seu próprio inbox
13
+ - **Domínios Separados**: Cada agente edita arquivos em diretórios diferentes
14
+ - **Claims**: Sistema de reserva para arquivos compartilhados
15
+
16
+ ## 📁 Estrutura
17
+
18
+ ```
19
+ .comunicate/
20
+ ├── registry/
21
+ │ ├── agents.json # Registro de agentes
22
+ │ ├── tasks.json # Tarefas
23
+ │ └── claims.json # Arquivos reservados
24
+ ├── messages/
25
+ │ ├── inbox-*.json # Caixas de entrada
26
+ │ └── archive/ # Mensagens arquivadas (gzip)
27
+ └── context/
28
+ ├── api-contracts.json
29
+ ├── decisions.json
30
+ └── progress.json
31
+ ```
32
+
33
+ ## 🚀 Instalação
34
+
35
+ ### 1. Instalar dependências
36
+
37
+ ```bash
38
+ npm install
39
+ ```
40
+
41
+ ### 2. Compilar TypeScript
42
+
43
+ ```bash
44
+ npm run build
45
+ ```
46
+
47
+ ### 3. Configurar variável de ambiente
48
+
49
+ ```bash
50
+ # Windows PowerShell
51
+ $env:COMUNICATE_ADMIN_TOKEN="seu-token-admin-seguro-aqui"
52
+
53
+ # Windows CMD
54
+ set COMUNICATE_ADMIN_TOKEN=seu-token-admin-seguro-aqui
55
+ ```
56
+
57
+ ### 4. Configurar no Claude Desktop (Claude Settings)
58
+
59
+ Edite `%APPDATA%\Claude\settings.json`:
60
+
61
+ ```json
62
+ {
63
+ "mcpServers": {
64
+ "@justmpm/comunicate": {
65
+ "command": "node",
66
+ "args": [
67
+ "C:/caminho/completo/para/dist/mcp-server.js"
68
+ ],
69
+ "env": {
70
+ "COMUNICATE_ADMIN_TOKEN": "seu-token-admin-seguro-aqui"
71
+ }
72
+ }
73
+ }
74
+ }
75
+ ```
76
+
77
+ ## 🛠️ Tools Disponíveis
78
+
79
+ ### Comunicação
80
+
81
+ | Tool | Descrição |
82
+ |------|-----------|
83
+ | `send_agent_message` | Envia mensagem para outro agente |
84
+ | `get_agent_messages` | Lê mensagens da inbox |
85
+ | `get_unread_count` | Conta mensagens não lidas |
86
+ | `delete_message` | Deleta mensagem específica |
87
+ | `clear_read_messages` | Limpa mensagens lidas |
88
+
89
+ ### Claims (Reserva de Arquivos)
90
+
91
+ | Tool | Descrição |
92
+ |------|-----------|
93
+ | `claim_file` | Reserva arquivo para edição |
94
+ | `renew_claim` | Renova claim prestes a expirar |
95
+ | `release_file` | Libera arquivo reservado |
96
+ | `can_edit_file` | Verifica permissão de edição |
97
+ | `get_agent_claims` | Lista seus claims ativos |
98
+ | `get_all_claims` | Lista todos claims (admin) |
99
+
100
+ ### Administração
101
+
102
+ | Tool | Descrição |
103
+ |------|-----------|
104
+ | `create_agent` | Cria novo agente |
105
+ | `list_agents` | Lista agentes registrados |
106
+ | `get_inactive_agents` | Lista agentes inativos |
107
+
108
+ ## 📖 Exemplos de Uso
109
+
110
+ ### Criar um agente (admin)
111
+
112
+ ```json
113
+ {
114
+ "adminToken": "seu-token-admin",
115
+ "agentId": "backend",
116
+ "capabilities": ["api", "database", "auth"],
117
+ "domains": ["src/api", "src/models"]
118
+ }
119
+ ```
120
+
121
+ ### Enviar mensagem
122
+
123
+ ```json
124
+ {
125
+ "token": "token-do-agente",
126
+ "recipientId": "frontend",
127
+ "message": "API pronta!",
128
+ "type": "task_update",
129
+ "priority": "high"
130
+ }
131
+ ```
132
+
133
+ ### Reservar arquivo
134
+
135
+ ```json
136
+ {
137
+ "token": "token-do-agente",
138
+ "filePath": "src/types/api.ts",
139
+ "durationMinutes": 30,
140
+ "reason": "Adicionando tipos"
141
+ }
142
+ ```
143
+
144
+ ## 🔒 Segurança
145
+
146
+ - **Timing-Safe Token Comparison**: Proteção contra timing attacks
147
+ - **Retry com Backoff**: Escrita atômica com retry automático
148
+ - **Claims Auto-Limpo**: Expirados são removidos automaticamente
149
+ - **Sequence em Claims**: Prevenção de race conditions
150
+
151
+ ## 🖥️ Otimizado para Windows
152
+
153
+ - File watcher com fallback para polling
154
+ - Caminhos normalizados para Windows
155
+ - Suporte nativo ao filesystem Windows
156
+
157
+ ## 📝 Licença
158
+
159
+ MIT
package/dist/cli.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI para Administração do @justmpm/comunicate
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}