@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
@@ -0,0 +1,378 @@
1
+ /**
2
+ * MCP Tools para comunicação entre agentes
3
+ */
4
+ import { z } from 'zod';
5
+ import { sendMessage, getMessages, getUnreadCount, deleteMessage, clearReadMessages } from '../comunicate/core/messaging.js';
6
+ import { registerAgent, getAgentId, verifyAdminToken, readRegistry, getInactiveAgents } from '../comunicate/core/auth.js';
7
+ import { claimFile, canEditFile, renewClaim, releaseFile, getAgentClaims, getAllClaims } from '../comunicate/core/domains.js';
8
+ // ============================================================================
9
+ // Schemas
10
+ // ============================================================================
11
+ export const SendMessageSchema = z.object({
12
+ token: z.string().describe('Token de autenticação do remetente'),
13
+ recipientId: z.string().describe('ID do agente destinatário'),
14
+ message: z.string().max(4000).describe('Conteúdo da mensagem'),
15
+ type: z.enum(['text', 'assistance_request', 'task_update', 'notification']).default('text'),
16
+ priority: z.enum(['low', 'normal', 'high', 'urgent']).default('normal')
17
+ });
18
+ export const GetMessagesSchema = z.object({
19
+ token: z.string().describe('Token de autenticação'),
20
+ includeRead: z.boolean().default(false).describe('Incluir mensagens já lidas'),
21
+ markAsRead: z.boolean().default(true).describe('Marcar mensagens como lidas ao ler'),
22
+ limit: z.number().min(1).max(50).default(10).describe('Limite de mensagens')
23
+ });
24
+ export const GetUnreadCountSchema = z.object({
25
+ token: z.string().describe('Token de autenticação')
26
+ });
27
+ export const DeleteMessageSchema = z.object({
28
+ token: z.string().describe('Token de autenticação'),
29
+ messageId: z.string().describe('ID da mensagem a deletar')
30
+ });
31
+ export const ClearReadMessagesSchema = z.object({
32
+ token: z.string().describe('Token de autenticação')
33
+ });
34
+ export const ClaimFileSchema = z.object({
35
+ token: z.string().describe('Token de autenticação'),
36
+ filePath: z.string().describe('Caminho do arquivo a reservar'),
37
+ durationMinutes: z.number().min(1).max(60).default(15).describe('Duração da reserva em minutos'),
38
+ reason: z.string().optional().describe('Motivo da reserva')
39
+ });
40
+ export const RenewClaimSchema = z.object({
41
+ token: z.string().describe('Token de autenticação'),
42
+ filePath: z.string().describe('Caminho do arquivo'),
43
+ additionalMinutes: z.number().min(1).max(60).default(15).describe('Tempo adicional em minutos')
44
+ });
45
+ export const ReleaseFileSchema = z.object({
46
+ token: z.string().describe('Token de autenticação'),
47
+ filePath: z.string().describe('Caminho do arquivo a liberar')
48
+ });
49
+ export const CanEditFileSchema = z.object({
50
+ token: z.string().describe('Token de autenticação'),
51
+ filePath: z.string().describe('Caminho do arquivo a verificar')
52
+ });
53
+ export const GetAgentClaimsSchema = z.object({
54
+ token: z.string().describe('Token de autenticação')
55
+ });
56
+ export const GetAllClaimsSchema = z.object({
57
+ adminToken: z.string().describe('Token de administrador')
58
+ });
59
+ export const CreateAgentSchema = z.object({
60
+ adminToken: z.string().describe('Token de admin'),
61
+ agentId: z.string().regex(/^[a-z0-9-]+$/).describe('ID do agente (ex: backend-worker)'),
62
+ capabilities: z.array(z.string()).describe('Capacidades (ex: ["api", "auth"])'),
63
+ domains: z.array(z.string()).describe('Domínios permitidos (ex: ["src/api"])')
64
+ });
65
+ export const ListAgentsSchema = z.object({
66
+ adminToken: z.string().describe('Token de administrador')
67
+ });
68
+ export const GetInactiveAgentsSchema = z.object({
69
+ adminToken: z.string().describe('Token de administrador'),
70
+ timeoutMinutes: z.number().min(1).max(60).default(5).describe('Tempo de inatividade em minutos')
71
+ });
72
+ // ============================================================================
73
+ // Handlers
74
+ // ============================================================================
75
+ export async function sendAgentMessageHandler(input) {
76
+ const result = sendMessage(input.token, input.recipientId, input.message, { type: input.type, priority: input.priority });
77
+ if (!result.success) {
78
+ return {
79
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
80
+ isError: true
81
+ };
82
+ }
83
+ return {
84
+ content: [{ type: 'text', text: `✅ Mensagem enviada para ${input.recipientId}` }]
85
+ };
86
+ }
87
+ export async function getAgentMessagesHandler(input) {
88
+ const result = getMessages(input.token, {
89
+ includeRead: input.includeRead,
90
+ markAsRead: input.markAsRead,
91
+ limit: input.limit
92
+ });
93
+ if (!result.success) {
94
+ return {
95
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
96
+ isError: true
97
+ };
98
+ }
99
+ const messages = result.messages || [];
100
+ if (messages.length === 0) {
101
+ return {
102
+ content: [{ type: 'text', text: '📭 Nenhuma mensagem encontrada.' }]
103
+ };
104
+ }
105
+ const lines = [`📬 Mensagens (${messages.length}):\n`];
106
+ for (const msg of messages) {
107
+ const icon = msg.read ? '📖' : '📩';
108
+ const priorityIcon = { low: '🔵', normal: '⚪', high: '🟡', urgent: '🔴' }[msg.priority];
109
+ lines.push(`${icon} ${priorityIcon} [${msg.type}] De: ${msg.senderId}`);
110
+ lines.push(` ID: ${msg.id}`);
111
+ lines.push(` ${msg.timestamp}`);
112
+ lines.push(` ${msg.content}`);
113
+ lines.push('');
114
+ }
115
+ return {
116
+ content: [{ type: 'text', text: lines.join('\n') }]
117
+ };
118
+ }
119
+ export async function getUnreadCountHandler(input) {
120
+ const result = getUnreadCount(input.token);
121
+ if (!result.success) {
122
+ return {
123
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
124
+ isError: true
125
+ };
126
+ }
127
+ return {
128
+ content: [{ type: 'text', text: `📩 Mensagens não lidas: ${result.count}` }]
129
+ };
130
+ }
131
+ export async function deleteMessageHandler(input) {
132
+ const result = deleteMessage(input.token, input.messageId);
133
+ if (!result.success) {
134
+ return {
135
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
136
+ isError: true
137
+ };
138
+ }
139
+ return {
140
+ content: [{ type: 'text', text: `✅ Mensagem ${input.messageId} deletada.` }]
141
+ };
142
+ }
143
+ export async function clearReadMessagesHandler(input) {
144
+ const result = clearReadMessages(input.token);
145
+ if (!result.success) {
146
+ return {
147
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
148
+ isError: true
149
+ };
150
+ }
151
+ return {
152
+ content: [{ type: 'text', text: `✅ ${result.deletedCount} mensagens lidas removidas.` }]
153
+ };
154
+ }
155
+ export async function claimFileHandler(input) {
156
+ const agentId = getAgentId(input.token);
157
+ if (!agentId) {
158
+ return {
159
+ content: [{ type: 'text', text: '❌ Token inválido' }],
160
+ isError: true
161
+ };
162
+ }
163
+ const result = claimFile(agentId, input.filePath, input.durationMinutes, input.reason);
164
+ if (!result.success) {
165
+ return {
166
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
167
+ isError: true
168
+ };
169
+ }
170
+ if (result.error) {
171
+ return {
172
+ content: [{ type: 'text', text: `ℹ️ ${result.error}` }]
173
+ };
174
+ }
175
+ return {
176
+ content: [{
177
+ type: 'text',
178
+ text: `✅ Arquivo reservado até ${result.claim?.expiresAt}`
179
+ }]
180
+ };
181
+ }
182
+ export async function renewClaimHandler(input) {
183
+ const agentId = getAgentId(input.token);
184
+ if (!agentId) {
185
+ return {
186
+ content: [{ type: 'text', text: '❌ Token inválido' }],
187
+ isError: true
188
+ };
189
+ }
190
+ const result = renewClaim(agentId, input.filePath, input.additionalMinutes);
191
+ if (!result.success) {
192
+ return {
193
+ content: [{ type: 'text', text: `❌ Erro: ${result.error}` }],
194
+ isError: true
195
+ };
196
+ }
197
+ if (result.error) {
198
+ return {
199
+ content: [{ type: 'text', text: `ℹ️ ${result.error}` }]
200
+ };
201
+ }
202
+ return {
203
+ content: [{
204
+ type: 'text',
205
+ text: `✅ Claim renovado até ${result.claim?.expiresAt}`
206
+ }]
207
+ };
208
+ }
209
+ export async function releaseFileHandler(input) {
210
+ const agentId = getAgentId(input.token);
211
+ if (!agentId) {
212
+ return {
213
+ content: [{ type: 'text', text: '❌ Token inválido' }],
214
+ isError: true
215
+ };
216
+ }
217
+ const success = releaseFile(agentId, input.filePath);
218
+ if (!success) {
219
+ return {
220
+ content: [{ type: 'text', text: '❌ Erro ao liberar arquivo' }],
221
+ isError: true
222
+ };
223
+ }
224
+ return {
225
+ content: [{ type: 'text', text: `✅ Arquivo ${input.filePath} liberado.` }]
226
+ };
227
+ }
228
+ export async function canEditFileHandler(input) {
229
+ const agentId = getAgentId(input.token);
230
+ if (!agentId) {
231
+ return {
232
+ content: [{ type: 'text', text: '❌ Token inválido' }],
233
+ isError: true
234
+ };
235
+ }
236
+ const result = canEditFile(agentId, input.filePath);
237
+ if (result.allowed) {
238
+ return {
239
+ content: [{ type: 'text', text: `✅ Você pode editar ${input.filePath}` }]
240
+ };
241
+ }
242
+ return {
243
+ content: [{
244
+ type: 'text',
245
+ text: `❌ Não pode editar ${input.filePath}\nMotivo: ${result.reason}`
246
+ }],
247
+ isError: true
248
+ };
249
+ }
250
+ export async function getAgentClaimsHandler(input) {
251
+ const agentId = getAgentId(input.token);
252
+ if (!agentId) {
253
+ return {
254
+ content: [{ type: 'text', text: '❌ Token inválido' }],
255
+ isError: true
256
+ };
257
+ }
258
+ const claims = getAgentClaims(agentId);
259
+ if (claims.length === 0) {
260
+ return {
261
+ content: [{ type: 'text', text: '📭 Você não tem claims ativos.' }]
262
+ };
263
+ }
264
+ const lines = [`🔐 Seus claims ativos (${claims.length}):\n`];
265
+ for (const claim of claims) {
266
+ lines.push(`📄 ${claim.file}`);
267
+ lines.push(` Expira: ${claim.expiresAt}`);
268
+ if (claim.reason)
269
+ lines.push(` Motivo: ${claim.reason}`);
270
+ lines.push('');
271
+ }
272
+ return {
273
+ content: [{ type: 'text', text: lines.join('\n') }]
274
+ };
275
+ }
276
+ export async function getAllClaimsHandler(input) {
277
+ if (!verifyAdminToken(input.adminToken)) {
278
+ return {
279
+ content: [{ type: 'text', text: '❌ Token de admin inválido' }],
280
+ isError: true
281
+ };
282
+ }
283
+ const claims = getAllClaims();
284
+ if (claims.length === 0) {
285
+ return {
286
+ content: [{ type: 'text', text: '📭 Nenhum claim ativo no sistema.' }]
287
+ };
288
+ }
289
+ const lines = [`🔐 Todos os claims ativos (${claims.length}):\n`];
290
+ for (const claim of claims) {
291
+ lines.push(`📄 ${claim.file}`);
292
+ lines.push(` Agente: ${claim.claimedBy}`);
293
+ lines.push(` Expira: ${claim.expiresAt}`);
294
+ if (claim.reason)
295
+ lines.push(` Motivo: ${claim.reason}`);
296
+ lines.push('');
297
+ }
298
+ return {
299
+ content: [{ type: 'text', text: lines.join('\n') }]
300
+ };
301
+ }
302
+ export async function createAgentHandler(input) {
303
+ if (!verifyAdminToken(input.adminToken)) {
304
+ return {
305
+ content: [{ type: 'text', text: '❌ Token de admin inválido' }],
306
+ isError: true
307
+ };
308
+ }
309
+ try {
310
+ const token = registerAgent(input.agentId, input.capabilities, input.domains);
311
+ return {
312
+ content: [{
313
+ type: 'text',
314
+ text: `✅ Agente ${input.agentId} criado\nToken: ${token}\n\nGuarde este token! Ele não será mostrado novamente.`
315
+ }]
316
+ };
317
+ }
318
+ catch (error) {
319
+ return {
320
+ content: [{ type: 'text', text: `❌ Erro: ${error}` }],
321
+ isError: true
322
+ };
323
+ }
324
+ }
325
+ export async function listAgentsHandler(input) {
326
+ if (!verifyAdminToken(input.adminToken)) {
327
+ return {
328
+ content: [{ type: 'text', text: '❌ Token de admin inválido' }],
329
+ isError: true
330
+ };
331
+ }
332
+ const registry = readRegistry();
333
+ if (registry.agents.length === 0) {
334
+ return {
335
+ content: [{ type: 'text', text: '📭 Nenhum agente registrado.' }]
336
+ };
337
+ }
338
+ const lines = [`👥 Agentes registrados (${registry.agents.length}):\n`];
339
+ for (const agent of registry.agents) {
340
+ const statusIcon = agent.status === 'active' ? '🟢' : '🔴';
341
+ lines.push(`${statusIcon} ${agent.id}`);
342
+ lines.push(` Status: ${agent.status}`);
343
+ lines.push(` Capabilities: ${agent.capabilities.join(', ')}`);
344
+ lines.push(` Domains: ${agent.domains.join(', ')}`);
345
+ lines.push(` Last Seen: ${agent.lastSeen}`);
346
+ lines.push('');
347
+ }
348
+ return {
349
+ content: [{ type: 'text', text: lines.join('\n') }]
350
+ };
351
+ }
352
+ export async function getInactiveAgentsHandler(input) {
353
+ if (!verifyAdminToken(input.adminToken)) {
354
+ return {
355
+ content: [{ type: 'text', text: '❌ Token de admin inválido' }],
356
+ isError: true
357
+ };
358
+ }
359
+ const inactive = getInactiveAgents(input.timeoutMinutes);
360
+ if (inactive.length === 0) {
361
+ return {
362
+ content: [{
363
+ type: 'text',
364
+ text: `✅ Todos os agentes estão ativos (últimos ${input.timeoutMinutes} minutos).`
365
+ }]
366
+ };
367
+ }
368
+ const lines = [`⚠️ Agentes inativos (${inactive.length}):\n`];
369
+ for (const agent of inactive) {
370
+ lines.push(`🔴 ${agent.id}`);
371
+ lines.push(` Último heartbeat: ${agent.lastSeen}`);
372
+ lines.push('');
373
+ }
374
+ return {
375
+ content: [{ type: 'text', text: lines.join('\n') }]
376
+ };
377
+ }
378
+ //# sourceMappingURL=agent-communication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-communication.js","sourceRoot":"","sources":["../../src/mcp-tools/agent-communication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ {
2
+ "mcpServers": {
3
+ "@justmpm/comunicate": {
4
+ "command": "node",
5
+ "args": [
6
+ "D:/Users/Matheus Pimenta/Pictures/Pacotes-Pessoais/MCP-AI/comunicate-ai/dist/mcp-server.js"
7
+ ],
8
+ "env": {
9
+ "COMUNICATE_ADMIN_TOKEN": "seu-token-admin-aqui"
10
+ },
11
+ "disabled": false,
12
+ "autoApprove": []
13
+ }
14
+ }
15
+ }
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@justmpm/comunicate",
3
+ "version": "0.1.0",
4
+ "description": "Sistema de Comunicação Entre Agentes - @justmpm/comunicate File-Based para Windows",
5
+ "type": "module",
6
+ "main": "dist/mcp-server.js",
7
+ "bin": {
8
+ "comunicate": "dist/mcp-server.js"
9
+ },
10
+ "files": [
11
+ "dist/",
12
+ "README.md",
13
+ "LICENSE",
14
+ "CLAUDE.md",
15
+ "AGENTS.md",
16
+ "mcp-config.json"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "start": "node dist/mcp-server.js",
21
+ "dev": "tsc && node dist/mcp-server.js",
22
+ "clean": "if exist dist rmdir /s /q dist",
23
+ "typecheck": "tsc --noEmit",
24
+ "cli": "node dist/cli.js",
25
+ "setup": "powershell -ExecutionPolicy Bypass -File setup.ps1"
26
+ },
27
+ "keywords": [
28
+ "mcp",
29
+ "agent",
30
+ "communication",
31
+ "file-based",
32
+ "windows"
33
+ ],
34
+ "author": "",
35
+ "license": "MIT",
36
+ "dependencies": {
37
+ "@modelcontextprotocol/sdk": "^1.0.4",
38
+ "zod": "^3.23.8"
39
+ },
40
+ "devDependencies": {
41
+ "@types/node": "^22.10.0",
42
+ "typescript": "^5.7.2"
43
+ }
44
+ }