@poolzin/pool-bot 2026.3.22 → 2026.3.23

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 (124) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/acp/bindings-store.js +209 -0
  3. package/dist/acp/control-plane/runtime-cache.js +54 -0
  4. package/dist/acp/control-plane/runtime-options.js +215 -0
  5. package/dist/acp/control-plane/session-actor-queue.js +36 -0
  6. package/dist/acp/runtime/errors.js +47 -0
  7. package/dist/acp/runtime/registry.js +86 -0
  8. package/dist/acp/runtime/types.js +1 -0
  9. package/dist/acp/translator.js +97 -0
  10. package/dist/agents/failover-error.js +145 -47
  11. package/dist/browser/browser-profile-manager.js +319 -0
  12. package/dist/browser/cdp-proxy-bypass.js +129 -0
  13. package/dist/browser/cdp-timeouts.js +41 -0
  14. package/dist/browser/chrome-extension-validator.js +406 -0
  15. package/dist/browser/chrome-mcp-snapshot.js +222 -0
  16. package/dist/browser/chrome-mcp.js +421 -0
  17. package/dist/browser/chrome-mcp.snapshot.js +133 -0
  18. package/dist/browser/errors.js +67 -0
  19. package/dist/browser/form-fields.js +22 -0
  20. package/dist/browser/output-atomic.js +44 -0
  21. package/dist/browser/profile-capabilities.js +47 -0
  22. package/dist/browser/safe-filename.js +25 -0
  23. package/dist/browser/snapshot-roles.js +60 -0
  24. package/dist/build-info.json +3 -3
  25. package/dist/commands/security-owner-only.js +86 -0
  26. package/dist/control-ui/assets/{index-Dvkl4Xlx.js → index-D7shnQwQ.js} +404 -388
  27. package/dist/control-ui/assets/index-D7shnQwQ.js.map +1 -0
  28. package/dist/control-ui/index.html +1 -1
  29. package/dist/cron/cron-filters.js +150 -0
  30. package/dist/gateway/device-pairing-security.js +197 -0
  31. package/dist/gateway/event-deduplication.js +167 -0
  32. package/dist/gateway/run-tracker.js +253 -0
  33. package/dist/gateway/server-methods/nodes.js +14 -0
  34. package/dist/gateway/websocket-preauth-security.js +188 -0
  35. package/dist/infra/errors.js +53 -13
  36. package/dist/infra/exec-approvals-security.js +217 -0
  37. package/dist/infra/security/command-analyzer.js +257 -0
  38. package/dist/plugins/loader.js +16 -8
  39. package/dist/security/external-content.js +51 -1
  40. package/dist/sessions/session-costs.js +228 -0
  41. package/dist/shared/param-key.js +16 -0
  42. package/dist/shared/poll-params.js +58 -0
  43. package/dist/shared/polls.js +55 -0
  44. package/docs/DASHBOARD-GAP-ANALYSIS-AND-PLAN.md +430 -0
  45. package/docs/FEATURES.md +523 -0
  46. package/docs/FINAL-IMPLEMENTATION-REVIEW.md +274 -0
  47. package/docs/FINAL-IMPLEMENTATION-SUMMARY.md +356 -0
  48. package/docs/FINAL-PROFESSIONAL-EVALUATION.md +312 -0
  49. package/docs/IMPLEMENTATION-PRIORITY-EVALUATION.md +298 -0
  50. package/docs/IMPLEMENTATION-PROGRESS.md +237 -0
  51. package/docs/IMPLEMENTATION-REVIEW-PHASE1-2.md +381 -0
  52. package/docs/IMPLEMENTATION-REVIEW-PHASE4.md +389 -0
  53. package/docs/IMPLEMENTATION-REVIEW-PHASE5.md +420 -0
  54. package/docs/IMPLEMENTATION-REVIEW-PHASE6.md +422 -0
  55. package/docs/IMPLEMENTATION-REVIEW-PHASE7-FINAL.md +184 -0
  56. package/docs/MIKRODASH-ANALYSIS.md +412 -0
  57. package/docs/OPENCLAW-GAP-ANALYSIS-FINAL.md +431 -0
  58. package/docs/OPENCLAW-VS-POOLBOT-ANALYSIS.md +351 -0
  59. package/docs/PHASE-7-SUMMARY.md +144 -0
  60. package/docs/POOLBOT-OFFICE-PLAN.md +697 -0
  61. package/docs/PROJECT-FINAL-STATUS.md +237 -0
  62. package/docs/README.md +116 -0
  63. package/docs/REAL-IMPROVEMENTS-EVALUATION.md +477 -0
  64. package/docs/SECURITY-HARDENING-IMPLEMENTATION.md +161 -0
  65. package/docs/channels/googlechat.md +235 -206
  66. package/docs/channels/irc.md +332 -0
  67. package/docs/channels/nostr.md +255 -168
  68. package/docs/components/command-palette.md +166 -0
  69. package/docs/components/login-gate.md +219 -0
  70. package/docs/getting-started/installation.md +191 -0
  71. package/docs/getting-started/introduction.md +120 -0
  72. package/docs/improvements/USAGE-GUIDE.md +359 -0
  73. package/docs/plans/2026-03-15-openclaw-features-implementation.md +1632 -0
  74. package/docs/reference/deadcode-detection.md +72 -0
  75. package/extensions/acpx/node_modules/.bin/acpx +21 -0
  76. package/extensions/agency-agents/node_modules/.bin/vite +4 -4
  77. package/extensions/agency-agents/node_modules/.bin/vitest +2 -2
  78. package/extensions/googlechat/node_modules/.bin/tsc +21 -0
  79. package/extensions/googlechat/node_modules/.bin/tsserver +21 -0
  80. package/extensions/googlechat/node_modules/.bin/vitest +21 -0
  81. package/extensions/googlechat/package.json +11 -28
  82. package/extensions/googlechat/src/googlechat-channel.test.ts +60 -0
  83. package/extensions/googlechat/src/googlechat-channel.ts +120 -0
  84. package/extensions/googlechat/src/index.ts +14 -0
  85. package/extensions/irc/node_modules/.bin/tsc +21 -0
  86. package/extensions/irc/node_modules/.bin/tsserver +21 -0
  87. package/extensions/irc/node_modules/.bin/vitest +21 -0
  88. package/extensions/irc/package.json +16 -8
  89. package/extensions/irc/src/index.ts +14 -0
  90. package/extensions/irc/src/irc-channel.test.ts +43 -0
  91. package/extensions/irc/src/irc-channel.ts +191 -0
  92. package/extensions/keyed-async-queue/node_modules/.bin/tsc +21 -0
  93. package/extensions/keyed-async-queue/node_modules/.bin/tsserver +21 -0
  94. package/extensions/keyed-async-queue/node_modules/.bin/vitest +21 -0
  95. package/extensions/keyed-async-queue/package.json +20 -0
  96. package/extensions/keyed-async-queue/src/index.ts +14 -0
  97. package/extensions/keyed-async-queue/src/queue.test.ts +135 -0
  98. package/extensions/keyed-async-queue/src/queue.ts +200 -0
  99. package/extensions/memory-core/node_modules/.bin/tsc +21 -0
  100. package/extensions/memory-core/node_modules/.bin/tsserver +21 -0
  101. package/extensions/memory-core/node_modules/.bin/vitest +21 -0
  102. package/extensions/memory-core/package.json +11 -8
  103. package/extensions/memory-core/src/index.ts +14 -0
  104. package/extensions/memory-core/src/memory-manager.test.ts +124 -0
  105. package/extensions/memory-core/src/memory-manager.ts +186 -0
  106. package/extensions/nostr/node_modules/.bin/tsc +2 -2
  107. package/extensions/nostr/node_modules/.bin/tsserver +2 -2
  108. package/extensions/nostr/node_modules/.bin/vitest +21 -0
  109. package/extensions/nostr/package.json +15 -24
  110. package/extensions/nostr/src/index.ts +14 -0
  111. package/extensions/nostr/src/nostr-channel.test.ts +55 -0
  112. package/extensions/nostr/src/nostr-channel.ts +228 -0
  113. package/extensions/page-agent/node_modules/.bin/vitest +2 -2
  114. package/extensions/test-utils/node_modules/.bin/jiti +21 -0
  115. package/extensions/test-utils/node_modules/.bin/playwright +21 -0
  116. package/extensions/test-utils/node_modules/.bin/tsx +21 -0
  117. package/extensions/test-utils/node_modules/.bin/vite +21 -0
  118. package/extensions/test-utils/node_modules/.bin/vitest +21 -0
  119. package/extensions/test-utils/node_modules/.bin/yaml +21 -0
  120. package/extensions/xyops/node_modules/.bin/vitest +2 -2
  121. package/package.json +2 -1
  122. package/dist/control-ui/assets/index-Dvkl4Xlx.js.map +0 -1
  123. package/extensions/googlechat/node_modules/.bin/poolbot +0 -21
  124. package/extensions/memory-core/node_modules/.bin/poolbot +0 -21
@@ -0,0 +1,332 @@
1
+ # IRC Channel
2
+
3
+ Integração com servidores IRC para comunicação em tempo real via protocolo IRC tradicional.
4
+
5
+ ## Features
6
+
7
+ - 🖥️ **Multi-Server** - Conecte a múltiplos servidores IRC
8
+ - 🔐 **SASL Auth** - Autenticação SASL PLAIN
9
+ - 🔁 **Auto-Reconnect** - Reconexão automática
10
+ - 📝 **Multi-Channel** - Entre em múltiplos canais
11
+ - 👥 **User Tracking** - Tracking de usuários
12
+ - 🔒 **TLS/SSL** - Conexões seguras
13
+
14
+ ## Configuração
15
+
16
+ ### 1. Configurar Conexão
17
+
18
+ ```bash
19
+ # Configurar servidor
20
+ poolbot config set channels.irc.host irc.libera.chat
21
+ poolbot config set channels.irc.port 6697
22
+ poolbot config set channels.irc.tls true
23
+
24
+ # Nickname do bot
25
+ poolbot config set channels.irc.nick poolbot
26
+
27
+ # Canais para entrar
28
+ poolbot config set channels.irc.channels '["#poolbot","#test"]'
29
+
30
+ # Habilitar canal
31
+ poolbot config set channels.irc.enabled true
32
+ ```
33
+
34
+ ### 2. Configurar SASL (Opcional)
35
+
36
+ ```bash
37
+ # NickServ credentials
38
+ poolbot config set channels.irc.sasl.account your-nick
39
+ poolbot config set channels.irc.sasl.password your-password
40
+ ```
41
+
42
+ ### 3. Configurar Senha do Server (Opcional)
43
+
44
+ ```bash
45
+ poolbot config set channels.irc.password serverpass
46
+ ```
47
+
48
+ ## Uso
49
+
50
+ ### Conectar
51
+
52
+ ```typescript
53
+ import { createIRCChannel } from '@poolbot/irc'
54
+
55
+ const channel = createIRCChannel({
56
+ host: 'irc.libera.chat',
57
+ port: 6697,
58
+ nick: 'poolbot',
59
+ channels: ['#poolbot', '#test'],
60
+ tls: true,
61
+ sasl: {
62
+ account: 'poolbot',
63
+ password: 'secret',
64
+ },
65
+ })
66
+
67
+ await channel.connect()
68
+ ```
69
+
70
+ ### Enviar Mensagem
71
+
72
+ ```typescript
73
+ // Enviar para canal
74
+ await channel.sendMessage({
75
+ text: 'Hello IRC!',
76
+ to: '#poolbot',
77
+ })
78
+
79
+ // Enviar para usuário
80
+ await channel.sendMessage({
81
+ text: 'Hello!',
82
+ to: 'username',
83
+ })
84
+ ```
85
+
86
+ ### Receber Mensagens
87
+
88
+ ```typescript
89
+ await channel.receiveMessages((msg) => {
90
+ console.log(`[${msg.to}] ${msg.from}: ${msg.text}`)
91
+ })
92
+ ```
93
+
94
+ ### Entrar/Sair de Canais
95
+
96
+ ```typescript
97
+ // Entrar em canal
98
+ await channel.joinChannel('#newchannel')
99
+
100
+ // Sair de canal
101
+ await channel.leaveChannel('#oldchannel')
102
+ ```
103
+
104
+ ### Obter Usuários
105
+
106
+ ```typescript
107
+ const presences = await channel.getPresences()
108
+ console.log(presences)
109
+ // [{ channelId: '#poolbot', userId: 'user1', status: 'online' }, ...]
110
+ ```
111
+
112
+ ## Config Options
113
+
114
+ ```typescript
115
+ type IRCConfig = {
116
+ host: string // Servidor IRC
117
+ port: number // Porta (6667 ou 6697 para TLS)
118
+ nick: string // Nickname do bot
119
+ channels: string[] // Canais para entrar
120
+ password?: string // Senha do servidor
121
+ sasl?: {
122
+ account: string // NickServ account
123
+ password: string // NickServ password
124
+ }
125
+ tls?: boolean // Usar TLS/SSL
126
+ }
127
+ ```
128
+
129
+ ## Auto-Reconnect
130
+
131
+ O canal IRC reconecta automaticamente:
132
+
133
+ ```typescript
134
+ {
135
+ auto_reconnect: true,
136
+ auto_reconnect_wait: 10, // Segundos
137
+ max_reconnect_attempts: 5, // Tentativas máximas
138
+ }
139
+ ```
140
+
141
+ ## Comandos IRC
142
+
143
+ ### Comandos do Bot
144
+
145
+ ```
146
+ !join #channel - Entrar em canal
147
+ !part #channel - Sair de canal
148
+ !nick newnick - Mudar nickname
149
+ !whois user - Whois de usuário
150
+ !channels - Listar canais
151
+ ```
152
+
153
+ ### Comandos IRC Padrão
154
+
155
+ ```
156
+ /join #channel - Entrar em canal
157
+ /part #channel - Sair de canal
158
+ /nick newnick - Mudar nick
159
+ /whois user - Whois
160
+ /msg user text - Mensagem privada
161
+ ```
162
+
163
+ ## Exemplos
164
+
165
+ ### Bot de Boas-Vindas
166
+
167
+ ```typescript
168
+ await channel.receiveMessages((msg) => {
169
+ if (msg.text.includes('join')) {
170
+ channel.sendMessage({
171
+ to: msg.from,
172
+ text: `Bem-vindo ${msg.from}!`,
173
+ })
174
+ }
175
+ })
176
+ ```
177
+
178
+ ### Resposta a Comandos
179
+
180
+ ```typescript
181
+ await channel.receiveMessages((msg) => {
182
+ if (msg.text.startsWith('!hora')) {
183
+ const hora = new Date().toLocaleTimeString()
184
+ channel.sendMessage({
185
+ to: msg.to,
186
+ text: `São ${hora}`,
187
+ })
188
+ }
189
+ })
190
+ ```
191
+
192
+ ### Bridge com Outros Canais
193
+
194
+ ```typescript
195
+ // Bridge IRC <-> Telegram
196
+ await channel.receiveMessages((msg) => {
197
+ if (msg.to === '#bridge') {
198
+ telegramChannel.sendMessage({
199
+ text: `[IRC] ${msg.from}: ${msg.text}`,
200
+ })
201
+ }
202
+ })
203
+ ```
204
+
205
+ ## Troubleshooting
206
+
207
+ ### Conexão Recusada
208
+
209
+ ```
210
+ Error: Connection refused
211
+ ```
212
+
213
+ **Solução:**
214
+ - Verificar host/porta
215
+ - Testar com telnet: `telnet irc.server.com 6667`
216
+ - Verificar firewall
217
+
218
+ ### Nickname já em uso
219
+
220
+ ```
221
+ Erroneous nickname
222
+ ```
223
+
224
+ **Solução:**
225
+ - Mudar nickname: `poolbot config set channels.irc.nick poolbot_`
226
+ - Registrar nick no NickServ
227
+
228
+ ### Não consegue entrar em canais
229
+
230
+ ```
231
+ Cannot join channel
232
+ ```
233
+
234
+ **Solução:**
235
+ - Verificar se canal existe
236
+ - Verificar permissões (canais +i, +k)
237
+ - Identificar-se antes: `/msg NickServ IDENTIFY password`
238
+
239
+ ### TLS/SSL Errors
240
+
241
+ ```
242
+ SSL/TLS handshake failed
243
+ ```
244
+
245
+ **Solução:**
246
+ - Usar porta correta (6697 para TLS)
247
+ - Verificar certificados
248
+ - Desabilitar TLS para teste: `tls: false`
249
+
250
+ ## Servidores Recomendados
251
+
252
+ ### Libera Chat (Open Source)
253
+ ```
254
+ host: irc.libera.chat
255
+ port: 6697 (TLS) / 6667 (plain)
256
+ tls: true
257
+ ```
258
+
259
+ ### Freenode (Legacy)
260
+ ```
261
+ host: irc.freenode.net
262
+ port: 6697 (TLS)
263
+ tls: true
264
+ ```
265
+
266
+ ### OFTC
267
+ ```
268
+ host: irc.oftc.net
269
+ port: 6697 (TLS)
270
+ tls: true
271
+ ```
272
+
273
+ ## Security
274
+
275
+ ### Best Practices
276
+
277
+ 1. **Sempre use TLS** quando disponível
278
+ 2. **Registre seu nick** no NickServ
279
+ 3. **Use SASL** em vez de enviar senha no comando
280
+ 4. **Não envie senhas** em canais públicos
281
+ 5. **Limite rate** de mensagens
282
+
283
+ ### Configuração Segura
284
+
285
+ ```typescript
286
+ {
287
+ host: 'irc.libera.chat',
288
+ port: 6697, // TLS port
289
+ tls: true, // Always use TLS
290
+ sasl: { // SASL auth
291
+ account: 'poolbot',
292
+ password: 'secret',
293
+ },
294
+ nick: 'poolbot',
295
+ channels: ['#poolbot'],
296
+ }
297
+ ```
298
+
299
+ ## API Reference
300
+
301
+ ### Methods
302
+
303
+ - `connect()` - Conectar ao servidor
304
+ - `disconnect()` - Desconectar (QUIT)
305
+ - `sendMessage(message)` - Enviar mensagem
306
+ - `receiveMessages(callback)` - Configurar receiver
307
+ - `getPresences()` - Obter usuários dos canais
308
+ - `joinChannel(channel)` - Entrar em canal
309
+ - `leaveChannel(channel)` - Sair de canal
310
+ - `getStatus()` - Status da conexão
311
+
312
+ ### Events
313
+
314
+ - `connect` - Conectado ao servidor
315
+ - `disconnect` - Desconectado
316
+ - `message` - Nova mensagem
317
+ - `notice` - Notice recebido
318
+ - `error` - Erro
319
+ - `join` - Usuário entrou no canal
320
+ - `part` - Usuário saiu do canal
321
+
322
+ ## Arquivos Relacionados
323
+
324
+ - `extensions/irc/src/irc-channel.ts` - Implementação
325
+ - `extensions/irc/src/index.ts` - Entry point
326
+ - `extensions/irc/package.json` - Dependências (irc-framework)
327
+
328
+ ## Links Relacionados
329
+
330
+ - [IRC Protocol](https://www.irc.org/tech_docs/protocol.html)
331
+ - [IRCv3 Extensions](https://ircv3.net/)
332
+ - [irc-framework Docs](https://github.com/kiwiirc/irc-framework)