@purecore/one-jwt-4-all 1.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.
@@ -0,0 +1,269 @@
1
+ # πŸ”„ Self-Healing Agentic Conversational System
2
+
3
+ ## 🎯 Conceito
4
+
5
+ Um sistema onde **dois ou mais agentes** (sistemas autΓ΄nomos, bots, ou serviΓ§os) se identificam mutuamente usando JWTs emitidos pelo mesmo servidor/autoridade, e **regeneram automaticamente seus tokens** quando expiram, mantendo a conversa contΓ­nua sem interrupΓ§Γ£o.
6
+
7
+ ### CaracterΓ­sticas Principais
8
+
9
+ - βœ… **Auto-RenovaΓ§Γ£o**: Tokens sΓ£o renovados automaticamente antes de expirar
10
+ - βœ… **Contexto Preservado**: A conversa continua mesmo apΓ³s renovaΓ§Γ£o
11
+ - βœ… **VerificaΓ§Γ£o MΓΊtua**: Agentes verificam a identidade uns dos outros
12
+ - βœ… **Self-Healing**: Sistema se recupera automaticamente de falhas de token
13
+ - βœ… **SeguranΓ§a**: Tokens curtos (5min) com renovaΓ§Γ£o proativa
14
+
15
+ ## πŸ—οΈ Arquitetura
16
+
17
+ ```
18
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
19
+ β”‚ Token Authority (Servidor Central) β”‚
20
+ β”‚ - Emite tokens para agentes β”‚
21
+ β”‚ - Renova tokens mantendo contexto β”‚
22
+ β”‚ - Valida identidades β”‚
23
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
24
+ β”‚ β”‚
25
+ β”‚ β”‚
26
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
27
+ β”‚ Agent Alpha β”‚ β”‚ Agent Beta β”‚
28
+ β”‚ - Token prΓ³prio β”‚ β”‚ - Token prΓ³prio β”‚
29
+ β”‚ - Auto-renovaΓ§Γ£o β”‚ β”‚ - Auto-renovaΓ§Γ£o β”‚
30
+ β”‚ - Verifica Beta β”‚ β”‚ - Verifica Alpha β”‚
31
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
32
+ β”‚ β”‚
33
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
34
+ β”‚
35
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
36
+ β”‚ Conversa ContΓ­nua β”‚
37
+ β”‚ (Self-Healing) β”‚
38
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
39
+ ```
40
+
41
+ ## πŸ”‘ Componentes
42
+
43
+ ### 1. TokenAuthority
44
+
45
+ Servidor central que emite e renova tokens para os agentes.
46
+
47
+ **Responsabilidades:**
48
+ - Emitir tokens iniciais para agentes
49
+ - Renovar tokens mantendo contexto da conversa
50
+ - Validar identidades
51
+
52
+ **CaracterΓ­sticas:**
53
+ - Tokens curtos (5 minutos) para seguranΓ§a
54
+ - RenovaΓ§Γ£o mantΓ©m `conversationId` e `capabilities`
55
+ - Suporta renovaΓ§Γ£o de tokens expirados (com contexto)
56
+
57
+ ### 2. SelfHealingAgent
58
+
59
+ Agente autΓ΄nomo que gerencia seu prΓ³prio ciclo de vida de token.
60
+
61
+ **Responsabilidades:**
62
+ - Manter token vΓ‘lido atravΓ©s de auto-renovaΓ§Γ£o
63
+ - Verificar identidade de outros agentes
64
+ - Enviar/receber mensagens autenticadas
65
+ - Preservar histΓ³rico da conversa
66
+
67
+ **CaracterΓ­sticas:**
68
+ - RenovaΓ§Γ£o proativa (60s antes de expirar)
69
+ - VerificaΓ§Γ£o de identidade antes de cada mensagem
70
+ - Fallback automΓ‘tico em caso de falha
71
+ - Monitoramento contΓ­nuo de validade
72
+
73
+ ## πŸ“– Uso BΓ‘sico
74
+
75
+ ### 1. Criar Autoridade e Agentes
76
+
77
+ ```typescript
78
+ import { TokenAuthority, SelfHealingAgent } from './examples/self-healing-agents';
79
+
80
+ // Criar autoridade central
81
+ const authority = new TokenAuthority();
82
+
83
+ // Criar agentes
84
+ const agentA = new SelfHealingAgent(
85
+ 'agent-alpha',
86
+ 'primary',
87
+ authority,
88
+ ['reasoning', 'memory']
89
+ );
90
+
91
+ const agentB = new SelfHealingAgent(
92
+ 'agent-beta',
93
+ 'secondary',
94
+ authority,
95
+ ['analysis', 'synthesis']
96
+ );
97
+ ```
98
+
99
+ ### 2. Inicializar e Ativar Auto-RenovaΓ§Γ£o
100
+
101
+ ```typescript
102
+ // Inicializar agentes
103
+ await agentA.initialize();
104
+ await agentB.initialize();
105
+
106
+ // Ativar auto-renovaΓ§Γ£o (verifica a cada 30 segundos)
107
+ agentA.startAutoRenewal(30000);
108
+ agentB.startAutoRenewal(30000);
109
+ ```
110
+
111
+ ### 3. Conversa entre Agentes
112
+
113
+ ```typescript
114
+ // Agente A envia mensagem para Agente B
115
+ await agentA.sendMessage(agentB, 'OlΓ‘! Vamos trabalhar juntos?');
116
+
117
+ // Agente B responde
118
+ await agentB.sendMessage(agentA, 'Perfeito! Estou pronto.');
119
+ ```
120
+
121
+ ## πŸ”„ Fluxo de Auto-RenovaΓ§Γ£o
122
+
123
+ ```
124
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
125
+ β”‚ 1. Token emitido (vΓ‘lido por 5 minutos) β”‚
126
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
127
+ β”‚
128
+ β–Ό
129
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
130
+ β”‚ 2. Agente monitora validade continuamente β”‚
131
+ β”‚ (verifica a cada 30 segundos) β”‚
132
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
133
+ β”‚
134
+ β–Ό
135
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
136
+ β”‚ 3. Token prΓ³ximo de expirar? (< 60s restantes) β”‚
137
+ β”‚ └─> Sim: Solicita renovaΓ§Γ£o β”‚
138
+ β”‚ └─> NΓ£o: Continua usando token atual β”‚
139
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
140
+ β”‚
141
+ β–Ό
142
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
143
+ β”‚ 4. RenovaΓ§Γ£o mantΓ©m contexto: β”‚
144
+ β”‚ - conversationId (mesma conversa) β”‚
145
+ β”‚ - capabilities (mesmas capacidades) β”‚
146
+ β”‚ - agentId (mesma identidade) β”‚
147
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
148
+ β”‚
149
+ β–Ό
150
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
151
+ β”‚ 5. Novo token vΓ‘lido por mais 5 minutos β”‚
152
+ β”‚ Conversa continua sem interrupΓ§Γ£o β”‚
153
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
154
+ ```
155
+
156
+ ## πŸ›‘οΈ SeguranΓ§a
157
+
158
+ ### ValidaΓ§Γ΅es Implementadas
159
+
160
+ 1. **VerificaΓ§Γ£o de Assinatura**: Cada token Γ© verificado criptograficamente
161
+ 2. **ValidaΓ§Γ£o de Issuer**: Apenas tokens do servidor autorizado sΓ£o aceitos
162
+ 3. **ValidaΓ§Γ£o de Audience**: Tokens devem ser destinados aos agentes
163
+ 4. **VerificaΓ§Γ£o de Conversa**: Agentes sΓ³ conversam se estiverem na mesma conversa
164
+ 5. **ExpiraΓ§Γ£o Curta**: Tokens de 5 minutos reduzem janela de ataque
165
+
166
+ ### Boas PrΓ‘ticas
167
+
168
+ - βœ… Use HTTPS para comunicaΓ§Γ£o entre agentes
169
+ - βœ… Rotacione chaves da autoridade periodicamente
170
+ - βœ… Monitore tentativas de renovaΓ§Γ£o falhadas
171
+ - βœ… Implemente rate limiting na autoridade
172
+ - βœ… Log todas as renovaΓ§Γ΅es para auditoria
173
+
174
+ ## πŸ“Š Casos de Uso
175
+
176
+ ### 1. Sistemas Multi-Agente de IA
177
+
178
+ Dois agentes de IA colaborando em uma tarefa complexa, mantendo contexto mesmo com renovaΓ§Γ£o de tokens.
179
+
180
+ ### 2. MicroserviΓ§os Conversacionais
181
+
182
+ ServiΓ§os que precisam se comunicar de forma autenticada e contΓ­nua, com auto-recuperaΓ§Γ£o de sessΓ΅es.
183
+
184
+ ### 3. Bots Colaborativos
185
+
186
+ MΓΊltiplos bots trabalhando juntos em uma conversa ou tarefa, mantendo identidade e contexto.
187
+
188
+ ### 4. Sistemas DistribuΓ­dos Resilientes
189
+
190
+ Sistemas que precisam manter comunicaΓ§Γ£o mesmo com falhas temporΓ‘rias de autenticaΓ§Γ£o.
191
+
192
+ ## πŸ§ͺ Executar Exemplo
193
+
194
+ ```bash
195
+ # Compilar TypeScript
196
+ bun build examples/self-healing-agents.ts --outdir dist/examples --target node
197
+
198
+ # Executar demonstraΓ§Γ£o
199
+ bun run dist/examples/self-healing-agents.js
200
+ ```
201
+
202
+ Ou diretamente com ts-node:
203
+
204
+ ```bash
205
+ bun run examples/self-healing-agents.ts
206
+ ```
207
+
208
+ ## πŸ” Exemplo de SaΓ­da
209
+
210
+ ```
211
+ πŸš€ Iniciando demonstraΓ§Γ£o de Self-Healing Agentic Conversational System
212
+
213
+ βœ… Autoridade de tokens criada
214
+
215
+ πŸ€– [agent-alpha] Agente inicializado com token vΓ‘lido atΓ© 2025-12-21T10:05:00.000Z
216
+ πŸ€– [agent-beta] Agente inicializado com token vΓ‘lido atΓ© 2025-12-21T10:05:00.000Z
217
+
218
+ πŸ”„ [agent-alpha] Auto-renovaΓ§Γ£o de token ativada (verifica a cada 30000ms)
219
+ πŸ”„ [agent-beta] Auto-renovaΓ§Γ£o de token ativada (verifica a cada 30000ms)
220
+
221
+ πŸ’¬ Iniciando conversa entre agentes...
222
+
223
+ πŸ“€ [agent-alpha] β†’ [agent-beta]: OlΓ‘! Sou o Agente Alpha. Como vocΓͺ estΓ‘?
224
+ πŸ“₯ [agent-beta] ← [agent-alpha]: OlΓ‘! Sou o Agente Alpha. Como vocΓͺ estΓ‘?
225
+
226
+ πŸ“€ [agent-beta] β†’ [agent-alpha]: OlΓ‘ Alpha! Sou o Agente Beta. Estou funcionando perfeitamente!
227
+ πŸ“₯ [agent-alpha] ← [agent-beta]: OlΓ‘ Alpha! Sou o Agente Beta. Estou funcionando perfeitamente!
228
+
229
+ ⏳ Simulando espera de 4 minutos (tokens expiram em 5 minutos)...
230
+
231
+ πŸ”„ [agent-alpha] Token prΓ³ximo de expirar, renovando...
232
+ βœ… [agent-alpha] Token renovado com sucesso. VΓ‘lido atΓ© 2025-12-21T10:10:00.000Z
233
+ πŸ”„ [agent-beta] Token prΓ³ximo de expirar, renovando...
234
+ βœ… [agent-beta] Token renovado com sucesso. VΓ‘lido atΓ© 2025-12-21T10:10:00.000Z
235
+
236
+ πŸ“€ [agent-alpha] β†’ [agent-beta]: Perfeito! Vamos trabalhar juntos neste problema complexo.
237
+ πŸ“₯ [agent-beta] ← [agent-alpha]: Perfeito! Vamos trabalhar juntos neste problema complexo.
238
+
239
+ πŸ“€ [agent-beta] β†’ [agent-alpha]: Excelente! Estou pronto para colaborar. Meus tokens foram renovados automaticamente.
240
+ πŸ“₯ [agent-alpha] ← [agent-beta]: Excelente! Estou pronto para colaborar. Meus tokens foram renovados automaticamente.
241
+
242
+ πŸ“œ HistΓ³rico da conversa:
243
+ [10:00:00] agent-alpha β†’ agent-beta: OlΓ‘! Sou o Agente Alpha. Como vocΓͺ estΓ‘?
244
+ [10:00:01] agent-beta β†’ agent-alpha: OlΓ‘ Alpha! Sou o Agente Beta. Estou funcionando perfeitamente!
245
+ [10:04:00] agent-alpha β†’ agent-beta: Perfeito! Vamos trabalhar juntos neste problema complexo.
246
+ [10:04:01] agent-beta β†’ agent-alpha: Excelente! Estou pronto para colaborar. Meus tokens foram renovados automaticamente.
247
+
248
+ βœ… DemonstraΓ§Γ£o concluΓ­da! Os agentes mantiveram a conversa mesmo com renovaΓ§Γ£o automΓ‘tica de tokens.
249
+ ```
250
+
251
+ ## πŸš€ PrΓ³ximos Passos
252
+
253
+ - [ ] Suporte para mΓΊltiplos agentes (>2)
254
+ - [ ] PersistΓͺncia de histΓ³rico de conversa
255
+ - [ ] MΓ©tricas de renovaΓ§Γ£o e performance
256
+ - [ ] IntegraΓ§Γ£o com sistemas de mensageria (RabbitMQ, Kafka)
257
+ - [ ] Suporte para renovaΓ§Γ£o assΓ­ncrona em background
258
+ - [ ] Cache de tokens para reduzir carga na autoridade
259
+
260
+ ## πŸ“š ReferΓͺncias
261
+
262
+ - [RFC 7519 - JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519)
263
+ - [Self-Healing Systems](https://en.wikipedia.org/wiki/Self-healing)
264
+ - [Multi-Agent Systems](https://en.wikipedia.org/wiki/Multi-agent_system)
265
+
266
+ ---
267
+
268
+ **Desenvolvido para demonstrar capacidades avanΓ§adas de autenticaΓ§Γ£o e comunicaΓ§Γ£o entre agentes autΓ΄nomos.**
269
+