@poolzin/pool-bot 2026.3.9 → 2026.3.10

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 (125) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +147 -69
  3. package/dist/.buildstamp +1 -1
  4. package/dist/agents/error-classifier.js +26 -77
  5. package/dist/agents/skills/security.js +1 -7
  6. package/dist/build-info.json +3 -3
  7. package/dist/cli/cron-cli/register.cron-dashboard.js +339 -0
  8. package/dist/cli/cron-cli/register.js +2 -0
  9. package/dist/cli/errors.js +187 -0
  10. package/dist/cli/program/command-registry.js +13 -0
  11. package/dist/cli/program/register.maintenance.js +21 -0
  12. package/dist/cli/program/register.subclis.js +9 -0
  13. package/dist/cli/swarm-cli/register.js +8 -0
  14. package/dist/cli/swarm-cli/register.swarm-status.js +488 -0
  15. package/dist/cli/telemetry-cli/register.js +10 -0
  16. package/dist/cli/telemetry-cli/register.telemetry-alerts.js +176 -0
  17. package/dist/cli/telemetry-cli/register.telemetry-metrics.js +323 -0
  18. package/dist/cli/telemetry-cli/register.telemetry-status.js +179 -0
  19. package/dist/commands/doctor-checks.js +498 -0
  20. package/dist/context-engine/index.js +1 -1
  21. package/dist/context-engine/legacy.js +1 -3
  22. package/dist/context-engine/summarizing.js +5 -8
  23. package/dist/cron/service/timer.js +18 -0
  24. package/dist/gateway/protocol/index.js +5 -2
  25. package/dist/gateway/protocol/schema/error-codes.js +1 -0
  26. package/dist/gateway/protocol/schema/swarm.js +80 -0
  27. package/dist/gateway/protocol/schema.js +1 -0
  28. package/dist/gateway/server-close.js +4 -0
  29. package/dist/gateway/server-constants.js +1 -0
  30. package/dist/gateway/server-cron.js +29 -0
  31. package/dist/gateway/server-maintenance.js +35 -2
  32. package/dist/gateway/server-methods/swarm.js +58 -0
  33. package/dist/gateway/server-methods/telemetry.js +71 -0
  34. package/dist/gateway/server-methods-list.js +8 -0
  35. package/dist/gateway/server-methods.js +9 -2
  36. package/dist/gateway/server.impl.js +33 -16
  37. package/dist/infra/abort-pattern.js +4 -4
  38. package/dist/infra/retry.js +3 -1
  39. package/dist/skills/commands.js +7 -25
  40. package/dist/skills/index.js +14 -17
  41. package/dist/skills/parser.js +12 -27
  42. package/dist/skills/registry.js +3 -6
  43. package/dist/skills/security.js +2 -8
  44. package/dist/swarm/service.js +247 -0
  45. package/dist/telemetry/alert-engine.js +258 -0
  46. package/dist/telemetry/cron-instrumentation.js +49 -0
  47. package/dist/telemetry/gateway-instrumentation.js +80 -0
  48. package/dist/telemetry/instrumentation.js +66 -0
  49. package/dist/telemetry/service.js +345 -0
  50. package/dist/tui/components/assistant-message.js +6 -2
  51. package/dist/tui/components/hyperlink-markdown.js +32 -0
  52. package/dist/tui/components/searchable-select-list.js +12 -1
  53. package/dist/tui/components/user-message.js +6 -2
  54. package/dist/tui/index.js +22 -6
  55. package/dist/tui/theme/theme-detection.js +226 -0
  56. package/dist/tui/tui-command-handlers.js +20 -0
  57. package/dist/tui/tui-formatters.js +4 -3
  58. package/dist/tui/utils/ctrl-c-handler.js +67 -0
  59. package/dist/tui/utils/osc8-hyperlinks.js +208 -0
  60. package/dist/tui/utils/safe-stop.js +180 -0
  61. package/dist/tui/utils/session-key-utils.js +81 -0
  62. package/dist/tui/utils/text-sanitization.js +284 -0
  63. package/dist/utils/lru-cache.js +116 -0
  64. package/dist/utils/performance.js +199 -0
  65. package/dist/utils/retry.js +240 -0
  66. package/docs/MELHORIAS_IMPLEMENTADAS.md +228 -0
  67. package/docs/MELHORIAS_PROFISSIONAIS.md +282 -0
  68. package/docs/PLANO_ACAO_TUI.md +357 -0
  69. package/docs/PROGRESSO_TUI.md +66 -0
  70. package/docs/RELATORIO_FINAL.md +217 -0
  71. package/docs/diagnostico-shell-completion.md +265 -0
  72. package/docs/features/advanced-memory.md +585 -0
  73. package/docs/features/discord-components-v2.md +277 -0
  74. package/docs/features/swarm.md +100 -0
  75. package/docs/features/telemetry.md +284 -0
  76. package/docs/integrations/INTEGRATION_PLAN.md +665 -345
  77. package/docs/models/provider-infrastructure.md +400 -0
  78. package/docs/security/exec-approvals.md +294 -0
  79. package/extensions/bluebubbles/package.json +1 -1
  80. package/extensions/copilot-proxy/package.json +1 -1
  81. package/extensions/diagnostics-otel/package.json +1 -1
  82. package/extensions/discord/package.json +1 -1
  83. package/extensions/feishu/package.json +1 -1
  84. package/extensions/google-antigravity-auth/package.json +1 -1
  85. package/extensions/google-gemini-cli-auth/package.json +1 -1
  86. package/extensions/googlechat/package.json +1 -1
  87. package/extensions/hexstrike-bridge/README.md +119 -0
  88. package/extensions/hexstrike-bridge/index.test.ts +247 -0
  89. package/extensions/hexstrike-bridge/index.ts +487 -0
  90. package/extensions/hexstrike-bridge/package.json +17 -0
  91. package/extensions/imessage/package.json +1 -1
  92. package/extensions/irc/package.json +1 -1
  93. package/extensions/line/package.json +1 -1
  94. package/extensions/llm-task/package.json +1 -1
  95. package/extensions/lobster/package.json +1 -1
  96. package/extensions/matrix/CHANGELOG.md +5 -0
  97. package/extensions/matrix/package.json +1 -1
  98. package/extensions/mattermost/package.json +1 -1
  99. package/extensions/mcp-server/index.ts +14 -0
  100. package/extensions/mcp-server/package.json +11 -0
  101. package/extensions/mcp-server/src/service.ts +540 -0
  102. package/extensions/memory-core/package.json +1 -1
  103. package/extensions/memory-lancedb/package.json +1 -1
  104. package/extensions/minimax-portal-auth/package.json +1 -1
  105. package/extensions/msteams/CHANGELOG.md +5 -0
  106. package/extensions/msteams/package.json +1 -1
  107. package/extensions/nextcloud-talk/package.json +1 -1
  108. package/extensions/nostr/CHANGELOG.md +5 -0
  109. package/extensions/nostr/package.json +1 -1
  110. package/extensions/open-prose/package.json +1 -1
  111. package/extensions/openai-codex-auth/package.json +1 -1
  112. package/extensions/signal/package.json +1 -1
  113. package/extensions/slack/package.json +1 -1
  114. package/extensions/telegram/package.json +1 -1
  115. package/extensions/tlon/package.json +1 -1
  116. package/extensions/twitch/CHANGELOG.md +5 -0
  117. package/extensions/twitch/package.json +1 -1
  118. package/extensions/voice-call/CHANGELOG.md +5 -0
  119. package/extensions/voice-call/package.json +1 -1
  120. package/extensions/whatsapp/package.json +1 -1
  121. package/extensions/zalo/CHANGELOG.md +5 -0
  122. package/extensions/zalo/package.json +1 -1
  123. package/extensions/zalouser/CHANGELOG.md +5 -0
  124. package/extensions/zalouser/package.json +1 -1
  125. package/package.json +8 -1
@@ -0,0 +1,585 @@
1
+ # Advanced Memory System
2
+
3
+ PoolBot features a sophisticated memory system for context-aware conversations, supporting semantic search, keyword search, and hybrid retrieval strategies.
4
+
5
+ ## Overview
6
+
7
+ The memory system provides:
8
+
9
+ - **Semantic Search** - Find relevant context using vector embeddings
10
+ - **Keyword Search** - Traditional FTS (Full Text Search) using SQLite FTS5
11
+ - **Hybrid Search** - Combine semantic + keyword for best results
12
+ - **MMR (Maximal Marginal Relevance)** - Diverse results, avoiding redundancy
13
+ - **Temporal Decay** - Prioritize recent memories
14
+
15
+ ## Architecture
16
+
17
+ ```
18
+ User Query
19
+
20
+
21
+ ┌─────────────────────────────────────┐
22
+ │ Memory Manager │
23
+ │ ┌──────────┐ ┌──────────────┐ │
24
+ │ │ Keyword │ │ Semantic │ │
25
+ │ │ Search │ │ Search │ │
26
+ │ │ (FTS5) │ │ (Embeddings) │ │
27
+ │ └────┬─────┘ └──────┬───────┘ │
28
+ │ │ │ │
29
+ │ └────────┬─────────┘ │
30
+ │ ▼ │
31
+ │ ┌─────────────┐ │
32
+ │ │Hybrid Merge │ │
33
+ │ │+ MMR + Time │ │
34
+ │ └──────┬──────┘ │
35
+ └────────────────┼───────────────────┘
36
+
37
+ Relevant Memories
38
+ ```
39
+
40
+ ## Configuration
41
+
42
+ ### Basic Setup
43
+
44
+ ```json
45
+ {
46
+ "agents": {
47
+ "defaults": {
48
+ "memorySearch": {
49
+ "enabled": true,
50
+ "provider": "openai",
51
+ "fallback": "ollama"
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ ### Configuration Options
59
+
60
+ | Option | Type | Default | Description |
61
+ |--------|------|---------|-------------|
62
+ | `enabled` | boolean | `true` | Enable memory search |
63
+ | `provider` | string | `"openai"` | Primary embedding provider |
64
+ | `fallback` | string | - | Fallback provider if primary fails |
65
+ | `sources` | array | `["memory"]` | Memory sources to search |
66
+ | `extraPaths` | array | `[]` | Additional paths to index |
67
+
68
+ ### Query Configuration
69
+
70
+ ```json
71
+ {
72
+ "agents": {
73
+ "defaults": {
74
+ "memorySearch": {
75
+ "query": {
76
+ "maxResults": 10,
77
+ "minScore": 0.5,
78
+ "hybrid": {
79
+ "enabled": true,
80
+ "vectorWeight": 0.7,
81
+ "textWeight": 0.3,
82
+ "candidateMultiplier": 4,
83
+ "mmr": {
84
+ "enabled": true,
85
+ "lambda": 0.5
86
+ },
87
+ "temporalDecay": {
88
+ "enabled": true,
89
+ "halfLifeDays": 30
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
99
+ ## Search Modes
100
+
101
+ ### Hybrid Search (Default)
102
+
103
+ Combines keyword and semantic search with configurable weights:
104
+
105
+ ```json
106
+ {
107
+ "agents": {
108
+ "defaults": {
109
+ "memorySearch": {
110
+ "query": {
111
+ "hybrid": {
112
+ "enabled": true,
113
+ "vectorWeight": 0.7,
114
+ "textWeight": 0.3
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ ```
122
+
123
+ **How it works:**
124
+ 1. Performs both keyword (FTS5) and semantic (vector) searches
125
+ 2. Merges results with weighted scoring
126
+ 3. Applies MMR reranking for diversity
127
+ 4. Applies temporal decay boost
128
+
129
+ ### Keyword-Only Search
130
+
131
+ For exact term matching without API calls:
132
+
133
+ ```json
134
+ {
135
+ "agents": {
136
+ "defaults": {
137
+ "memorySearch": {
138
+ "query": {
139
+ "hybrid": {
140
+ "enabled": false
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ ```
148
+
149
+ **Best for:**
150
+ - Offline operation
151
+ - Exact term matching
152
+ - Proper nouns and IDs
153
+
154
+ ## Embedding Providers
155
+
156
+ ### OpenAI (Recommended)
157
+
158
+ ```json
159
+ {
160
+ "agents": {
161
+ "defaults": {
162
+ "memorySearch": {
163
+ "provider": "openai",
164
+ "remote": {
165
+ "baseUrl": "https://api.openai.com/v1",
166
+ "apiKey": "${OPENAI_API_KEY}"
167
+ }
168
+ }
169
+ }
170
+ }
171
+ }
172
+ ```
173
+
174
+ ### Ollama (Local)
175
+
176
+ ```json
177
+ {
178
+ "agents": {
179
+ "defaults": {
180
+ "memorySearch": {
181
+ "provider": "ollama",
182
+ "remote": {
183
+ "baseUrl": "http://localhost:11434"
184
+ },
185
+ "local": {
186
+ "modelPath": "nomic-embed-text"
187
+ }
188
+ }
189
+ }
190
+ }
191
+ }
192
+ ```
193
+
194
+ ### Gemini
195
+
196
+ ```json
197
+ {
198
+ "agents": {
199
+ "defaults": {
200
+ "memorySearch": {
201
+ "provider": "gemini",
202
+ "remote": {
203
+ "apiKey": "${GEMINI_API_KEY}"
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ ```
210
+
211
+ ## MMR (Maximal Marginal Relevance)
212
+
213
+ MMR ensures diverse results, avoiding redundancy:
214
+
215
+ ```json
216
+ {
217
+ "agents": {
218
+ "defaults": {
219
+ "memorySearch": {
220
+ "query": {
221
+ "hybrid": {
222
+ "mmr": {
223
+ "enabled": true,
224
+ "lambda": 0.5
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ ```
233
+
234
+ | Parameter | Description | Range |
235
+ |-----------|-------------|-------|
236
+ | `lambda` | Balance relevance vs diversity | 0-1 (0.5 = balanced) |
237
+
238
+ **Example:**
239
+
240
+ Without MMR:
241
+ ```
242
+ 1. "JavaScript arrays methods"
243
+ 2. "JavaScript arrays tutorial"
244
+ 3. "JavaScript arrays guide"
245
+ ```
246
+
247
+ With MMR (λ=0.5):
248
+ ```
249
+ 1. "JavaScript arrays methods"
250
+ 2. "Python list comprehensions"
251
+ 3. "Rust vectors overview"
252
+ ```
253
+
254
+ ## Temporal Decay
255
+
256
+ Prioritize recent memories:
257
+
258
+ ```json
259
+ {
260
+ "agents": {
261
+ "defaults": {
262
+ "memorySearch": {
263
+ "query": {
264
+ "hybrid": {
265
+ "temporalDecay": {
266
+ "enabled": true,
267
+ "halfLifeDays": 30
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ }
275
+ ```
276
+
277
+ | Parameter | Description | Default |
278
+ |-----------|-------------|---------|
279
+ | `halfLifeDays` | Days for relevance to decay by 50% | 30 |
280
+
281
+ **Decay Formula:**
282
+ ```
283
+ score = baseScore * (0.5 ^ (daysAgo / halfLifeDays))
284
+ ```
285
+
286
+ ## Memory Sources
287
+
288
+ ### Default Memory
289
+
290
+ Files in the `memory/` directory are automatically indexed:
291
+
292
+ ```
293
+ memory/
294
+ ├── snippets/
295
+ │ └── javascript/
296
+ │ └── array-methods.md
297
+ ├── docs/
298
+ │ └── architecture.md
299
+ └── decisions/
300
+ └── adr-001.md
301
+ ```
302
+
303
+ ### Extra Paths
304
+
305
+ Add additional paths to index:
306
+
307
+ ```json
308
+ {
309
+ "agents": {
310
+ "defaults": {
311
+ "memorySearch": {
312
+ "extraPaths": [
313
+ "~/notes/**/*.md",
314
+ "docs/**/*.md"
315
+ ]
316
+ }
317
+ }
318
+ }
319
+ }
320
+ ```
321
+
322
+ ### Session Memory
323
+
324
+ Recent conversation history can be included:
325
+
326
+ ```json
327
+ {
328
+ "agents": {
329
+ "defaults": {
330
+ "memorySearch": {
331
+ "experimental": {
332
+ "sessionMemory": true
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ ```
339
+
340
+ ## Indexing
341
+
342
+ ### Automatic Indexing
343
+
344
+ Memories are indexed automatically on:
345
+ - Gateway startup (if `sync.onSessionStart` is enabled)
346
+ - File changes in memory directories (if `sync.watch` is enabled)
347
+ - Before search (if `sync.onSearch` is enabled - lazy mode)
348
+
349
+ ### Sync Configuration
350
+
351
+ ```json
352
+ {
353
+ "agents": {
354
+ "defaults": {
355
+ "memorySearch": {
356
+ "sync": {
357
+ "onSessionStart": true,
358
+ "onSearch": false,
359
+ "watch": true,
360
+ "watchDebounceMs": 5000
361
+ }
362
+ }
363
+ }
364
+ }
365
+ }
366
+ ```
367
+
368
+ ### Session Sync
369
+
370
+ Control how session history is indexed:
371
+
372
+ ```json
373
+ {
374
+ "agents": {
375
+ "defaults": {
376
+ "memorySearch": {
377
+ "sync": {
378
+ "sessions": {
379
+ "deltaBytes": 100000,
380
+ "deltaMessages": 10
381
+ }
382
+ }
383
+ }
384
+ }
385
+ }
386
+ }
387
+ ```
388
+
389
+ ## Storage
390
+
391
+ ### Vector Index
392
+
393
+ SQLite with vector extension for embeddings:
394
+
395
+ ```json
396
+ {
397
+ "agents": {
398
+ "defaults": {
399
+ "memorySearch": {
400
+ "store": {
401
+ "path": "~/.poolbot/memory.db",
402
+ "vector": {
403
+ "enabled": true,
404
+ "extensionPath": "~/.poolbot/vector.dylib"
405
+ }
406
+ }
407
+ }
408
+ }
409
+ }
410
+ }
411
+ ```
412
+
413
+ ### Caching
414
+
415
+ Cache embedding results to reduce API calls:
416
+
417
+ ```json
418
+ {
419
+ "agents": {
420
+ "defaults": {
421
+ "memorySearch": {
422
+ "cache": {
423
+ "enabled": true,
424
+ "maxEntries": 10000
425
+ }
426
+ }
427
+ }
428
+ }
429
+ }
430
+ ```
431
+
432
+ ## Chunking
433
+
434
+ Control how documents are split for indexing:
435
+
436
+ ```json
437
+ {
438
+ "agents": {
439
+ "defaults": {
440
+ "memorySearch": {
441
+ "chunking": {
442
+ "tokens": 512,
443
+ "overlap": 50
444
+ }
445
+ }
446
+ }
447
+ }
448
+ }
449
+ ```
450
+
451
+ | Parameter | Description | Default |
452
+ |-----------|-------------|---------|
453
+ | `tokens` | Target chunk size in tokens | 512 |
454
+ | `overlap` | Overlap between chunks in tokens | 50 |
455
+
456
+ ## QMD Integration
457
+
458
+ PoolBot can use QMD (Query My Documents) as an alternative backend:
459
+
460
+ ```json
461
+ {
462
+ "memory": {
463
+ "backend": "qmd",
464
+ "qmd": {
465
+ "command": "qmd",
466
+ "includeDefaultMemory": true,
467
+ "paths": [
468
+ { "path": "~/docs", "pattern": "**/*.md" }
469
+ ],
470
+ "limits": {
471
+ "maxResults": 10,
472
+ "maxSnippetChars": 500,
473
+ "maxInjectedChars": 4000
474
+ }
475
+ }
476
+ }
477
+ }
478
+ ```
479
+
480
+ ## Best Practices
481
+
482
+ ### Developer Knowledge Base
483
+
484
+ ```json
485
+ {
486
+ "agents": {
487
+ "defaults": {
488
+ "memorySearch": {
489
+ "enabled": true,
490
+ "sources": ["memory"],
491
+ "extraPaths": [
492
+ "snippets/**/*.md",
493
+ "docs/**/*.md",
494
+ "decisions/**/*.md"
495
+ ],
496
+ "query": {
497
+ "hybrid": {
498
+ "mmr": {
499
+ "enabled": true,
500
+ "lambda": 0.6
501
+ }
502
+ }
503
+ }
504
+ }
505
+ }
506
+ }
507
+ }
508
+ ```
509
+
510
+ ### Project-Specific Memory
511
+
512
+ ```json
513
+ {
514
+ "agents": {
515
+ "list": [
516
+ {
517
+ "id": "project-alpha",
518
+ "memorySearch": {
519
+ "extraPaths": [
520
+ "agents/project-alpha/memory/**/*.md",
521
+ "projects/alpha/docs/**/*.md"
522
+ ]
523
+ }
524
+ }
525
+ ]
526
+ }
527
+ }
528
+ ```
529
+
530
+ ### Cost Optimization
531
+
532
+ Use local embeddings to reduce API costs:
533
+
534
+ ```json
535
+ {
536
+ "agents": {
537
+ "defaults": {
538
+ "memorySearch": {
539
+ "provider": "ollama",
540
+ "fallback": "openai",
541
+ "cache": {
542
+ "enabled": true,
543
+ "maxEntries": 50000
544
+ }
545
+ }
546
+ }
547
+ }
548
+ }
549
+ ```
550
+
551
+ ## Troubleshooting
552
+
553
+ ### Search Returns No Results
554
+
555
+ 1. Verify memories exist in indexed paths
556
+ 2. Check index is up to date (restart gateway or trigger sync)
557
+ 3. Lower `minScore` threshold
558
+ 4. Verify embedding provider is working
559
+
560
+ ### Slow Search Performance
561
+
562
+ 1. Enable embedding cache
563
+ 2. Use keyword-only mode for simple queries
564
+ 3. Reduce `candidateMultiplier`
565
+ 4. Check vector extension is loaded
566
+
567
+ ### High API Costs
568
+
569
+ 1. Use local Ollama embeddings
570
+ 2. Increase cache size
571
+ 3. Enable batch processing
572
+ 4. Use keyword-only mode for some queries
573
+
574
+ ### Index Not Updating
575
+
576
+ 1. Check `sync.watch` is enabled
577
+ 2. Verify file permissions on memory paths
578
+ 3. Check `watchDebounceMs` is not too high
579
+ 4. Manually trigger reindex by restarting gateway
580
+
581
+ ## See Also
582
+
583
+ - [Memory Configuration](../concepts/memory.md)
584
+ - [QMD Integration](../integrations/qmd.md)
585
+ - [Agent Configuration](../agents/configuration.md)