@poolzin/pool-bot 2026.3.22 → 2026.3.24

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 (159) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/acp/bindings-store.js +209 -0
  4. package/dist/acp/control-plane/runtime-cache.js +54 -0
  5. package/dist/acp/control-plane/runtime-options.js +215 -0
  6. package/dist/acp/control-plane/session-actor-queue.js +36 -0
  7. package/dist/acp/policy.js +52 -0
  8. package/dist/acp/runtime/errors.js +47 -0
  9. package/dist/acp/runtime/registry.js +86 -0
  10. package/dist/acp/runtime/types.js +1 -0
  11. package/dist/acp/translator.js +97 -0
  12. package/dist/agents/btw.js +280 -0
  13. package/dist/agents/failover-error.js +145 -47
  14. package/dist/agents/fast-mode.js +24 -0
  15. package/dist/agents/live-model-errors.js +23 -0
  16. package/dist/agents/model-auth-env-vars.js +44 -0
  17. package/dist/agents/model-auth-markers.js +69 -0
  18. package/dist/agents/models-config.providers.discovery.js +180 -0
  19. package/dist/agents/models-config.providers.static.js +480 -0
  20. package/dist/auto-reply/reply/typing-policy.js +15 -0
  21. package/dist/browser/browser-profile-manager.js +319 -0
  22. package/dist/browser/cdp-proxy-bypass.js +129 -0
  23. package/dist/browser/cdp-timeouts.js +41 -0
  24. package/dist/browser/chrome-extension-validator.js +406 -0
  25. package/dist/browser/chrome-mcp-snapshot.js +222 -0
  26. package/dist/browser/chrome-mcp.js +421 -0
  27. package/dist/browser/chrome-mcp.snapshot.js +133 -0
  28. package/dist/browser/errors.js +67 -0
  29. package/dist/browser/form-fields.js +22 -0
  30. package/dist/browser/output-atomic.js +44 -0
  31. package/dist/browser/profile-capabilities.js +47 -0
  32. package/dist/browser/safe-filename.js +25 -0
  33. package/dist/browser/snapshot-roles.js +60 -0
  34. package/dist/build-info.json +3 -3
  35. package/dist/channels/account-snapshot-fields.js +176 -0
  36. package/dist/channels/draft-stream-controls.js +89 -0
  37. package/dist/channels/inbound-debounce-policy.js +28 -0
  38. package/dist/channels/typing-lifecycle.js +39 -0
  39. package/dist/cli/program/command-registry.js +52 -0
  40. package/dist/commands/agent-binding.js +123 -0
  41. package/dist/commands/agents.commands.bind.js +280 -0
  42. package/dist/commands/backup-shared.js +186 -0
  43. package/dist/commands/backup-verify.js +236 -0
  44. package/dist/commands/backup.js +166 -0
  45. package/dist/commands/channel-account-context.js +15 -0
  46. package/dist/commands/channel-account.js +190 -0
  47. package/dist/commands/gateway-install-token.js +117 -0
  48. package/dist/commands/oauth-tls-preflight.js +121 -0
  49. package/dist/commands/ollama-setup.js +402 -0
  50. package/dist/commands/security-owner-only.js +86 -0
  51. package/dist/commands/self-hosted-provider-setup.js +207 -0
  52. package/dist/commands/session-store-targets.js +12 -0
  53. package/dist/commands/sessions-cleanup.js +97 -0
  54. package/dist/control-ui/assets/{index-Dvkl4Xlx.js → index-D7shnQwQ.js} +404 -388
  55. package/dist/control-ui/assets/index-D7shnQwQ.js.map +1 -0
  56. package/dist/control-ui/index.html +1 -1
  57. package/dist/cron/cron-filters.js +150 -0
  58. package/dist/cron/heartbeat-policy.js +26 -0
  59. package/dist/gateway/device-pairing-security.js +197 -0
  60. package/dist/gateway/event-deduplication.js +167 -0
  61. package/dist/gateway/hooks-mapping.js +46 -7
  62. package/dist/gateway/run-tracker.js +253 -0
  63. package/dist/gateway/server-methods/nodes.js +14 -0
  64. package/dist/gateway/websocket-preauth-security.js +188 -0
  65. package/dist/hooks/module-loader.js +28 -0
  66. package/dist/infra/agent-command-binding.js +144 -0
  67. package/dist/infra/backup.js +328 -0
  68. package/dist/infra/channel-account-context.js +173 -0
  69. package/dist/infra/errors.js +53 -13
  70. package/dist/infra/exec-approvals-security.js +217 -0
  71. package/dist/infra/security/command-analyzer.js +257 -0
  72. package/dist/infra/session-cleanup.js +143 -0
  73. package/dist/plugins/loader.js +16 -8
  74. package/dist/security/external-content.js +51 -1
  75. package/dist/sessions/session-costs.js +228 -0
  76. package/dist/shared/param-key.js +16 -0
  77. package/dist/shared/poll-params.js +58 -0
  78. package/dist/shared/polls.js +55 -0
  79. package/docs/DASHBOARD-GAP-ANALYSIS-AND-PLAN.md +430 -0
  80. package/docs/FEATURES.md +523 -0
  81. package/docs/FINAL-IMPLEMENTATION-REVIEW.md +274 -0
  82. package/docs/FINAL-IMPLEMENTATION-SUMMARY.md +356 -0
  83. package/docs/FINAL-PROFESSIONAL-EVALUATION.md +312 -0
  84. package/docs/IMPLEMENTATION-PRIORITY-EVALUATION.md +298 -0
  85. package/docs/IMPLEMENTATION-PROGRESS.md +237 -0
  86. package/docs/IMPLEMENTATION-REVIEW-PHASE1-2.md +381 -0
  87. package/docs/IMPLEMENTATION-REVIEW-PHASE4.md +389 -0
  88. package/docs/IMPLEMENTATION-REVIEW-PHASE5.md +420 -0
  89. package/docs/IMPLEMENTATION-REVIEW-PHASE6.md +422 -0
  90. package/docs/IMPLEMENTATION-REVIEW-PHASE7-FINAL.md +184 -0
  91. package/docs/MIKRODASH-ANALYSIS.md +412 -0
  92. package/docs/OPENCLAW-GAP-ANALYSIS-FINAL.md +431 -0
  93. package/docs/OPENCLAW-VS-POOLBOT-ANALYSIS.md +351 -0
  94. package/docs/PHASE-7-SUMMARY.md +144 -0
  95. package/docs/POOLBOT-OFFICE-PLAN.md +697 -0
  96. package/docs/PROJECT-FINAL-STATUS.md +237 -0
  97. package/docs/README.md +116 -0
  98. package/docs/REAL-IMPROVEMENTS-EVALUATION.md +477 -0
  99. package/docs/SECURITY-HARDENING-IMPLEMENTATION.md +161 -0
  100. package/docs/channels/googlechat.md +235 -206
  101. package/docs/channels/irc.md +332 -0
  102. package/docs/channels/nostr.md +255 -168
  103. package/docs/components/command-palette.md +166 -0
  104. package/docs/components/login-gate.md +219 -0
  105. package/docs/getting-started/installation.md +191 -0
  106. package/docs/getting-started/introduction.md +120 -0
  107. package/docs/improvements/USAGE-GUIDE.md +359 -0
  108. package/docs/plans/2026-03-15-openclaw-features-implementation.md +1632 -0
  109. package/docs/reference/deadcode-detection.md +72 -0
  110. package/extensions/acpx/node_modules/.bin/acpx +21 -0
  111. package/extensions/agency-agents/node_modules/.bin/vite +4 -4
  112. package/extensions/agency-agents/node_modules/.bin/vitest +2 -2
  113. package/extensions/googlechat/node_modules/.bin/tsc +21 -0
  114. package/extensions/googlechat/node_modules/.bin/tsserver +21 -0
  115. package/extensions/googlechat/node_modules/.bin/vitest +21 -0
  116. package/extensions/googlechat/package.json +11 -28
  117. package/extensions/googlechat/src/googlechat-channel.test.ts +60 -0
  118. package/extensions/googlechat/src/googlechat-channel.ts +120 -0
  119. package/extensions/googlechat/src/index.ts +14 -0
  120. package/extensions/irc/node_modules/.bin/tsc +21 -0
  121. package/extensions/irc/node_modules/.bin/tsserver +21 -0
  122. package/extensions/irc/node_modules/.bin/vitest +21 -0
  123. package/extensions/irc/package.json +16 -8
  124. package/extensions/irc/src/index.ts +14 -0
  125. package/extensions/irc/src/irc-channel.test.ts +43 -0
  126. package/extensions/irc/src/irc-channel.ts +191 -0
  127. package/extensions/keyed-async-queue/node_modules/.bin/tsc +21 -0
  128. package/extensions/keyed-async-queue/node_modules/.bin/tsserver +21 -0
  129. package/extensions/keyed-async-queue/node_modules/.bin/vitest +21 -0
  130. package/extensions/keyed-async-queue/package.json +20 -0
  131. package/extensions/keyed-async-queue/src/index.ts +14 -0
  132. package/extensions/keyed-async-queue/src/queue.test.ts +135 -0
  133. package/extensions/keyed-async-queue/src/queue.ts +200 -0
  134. package/extensions/memory-core/node_modules/.bin/tsc +21 -0
  135. package/extensions/memory-core/node_modules/.bin/tsserver +21 -0
  136. package/extensions/memory-core/node_modules/.bin/vitest +21 -0
  137. package/extensions/memory-core/package.json +11 -8
  138. package/extensions/memory-core/src/index.ts +14 -0
  139. package/extensions/memory-core/src/memory-manager.test.ts +124 -0
  140. package/extensions/memory-core/src/memory-manager.ts +186 -0
  141. package/extensions/nostr/node_modules/.bin/tsc +2 -2
  142. package/extensions/nostr/node_modules/.bin/tsserver +2 -2
  143. package/extensions/nostr/node_modules/.bin/vitest +21 -0
  144. package/extensions/nostr/package.json +15 -24
  145. package/extensions/nostr/src/index.ts +14 -0
  146. package/extensions/nostr/src/nostr-channel.test.ts +55 -0
  147. package/extensions/nostr/src/nostr-channel.ts +228 -0
  148. package/extensions/page-agent/node_modules/.bin/vitest +2 -2
  149. package/extensions/test-utils/node_modules/.bin/jiti +21 -0
  150. package/extensions/test-utils/node_modules/.bin/playwright +21 -0
  151. package/extensions/test-utils/node_modules/.bin/tsx +21 -0
  152. package/extensions/test-utils/node_modules/.bin/vite +21 -0
  153. package/extensions/test-utils/node_modules/.bin/vitest +21 -0
  154. package/extensions/test-utils/node_modules/.bin/yaml +21 -0
  155. package/extensions/xyops/node_modules/.bin/vitest +2 -2
  156. package/package.json +2 -1
  157. package/dist/control-ui/assets/index-Dvkl4Xlx.js.map +0 -1
  158. package/extensions/googlechat/node_modules/.bin/poolbot +0 -21
  159. package/extensions/memory-core/node_modules/.bin/poolbot +0 -21
@@ -0,0 +1,12 @@
1
+ import { resolveSessionStoreTargets, } from "../config/sessions.js";
2
+ export { resolveSessionStoreTargets };
3
+ export function resolveSessionStoreTargetsOrExit(params) {
4
+ try {
5
+ return resolveSessionStoreTargets(params.cfg, params.opts);
6
+ }
7
+ catch (error) {
8
+ params.runtime.error(error instanceof Error ? error.message : String(error));
9
+ params.runtime.exit(1);
10
+ return null;
11
+ }
12
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Session Cleanup Command
3
+ *
4
+ * Clean up old sessions to stay within disk budget.
5
+ */
6
+ import { cleanupSessions, getSessionCleanupStatus } from "../infra/session-cleanup.js";
7
+ function formatBytes(bytes) {
8
+ if (bytes < 1024)
9
+ return `${bytes} B`;
10
+ if (bytes < 1024 * 1024)
11
+ return `${(bytes / 1024).toFixed(2)} KB`;
12
+ if (bytes < 1024 * 1024 * 1024)
13
+ return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
14
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
15
+ }
16
+ export function registerSessionCleanupCommand(program) {
17
+ const cleanupCmd = program
18
+ .command("sessions-cleanup")
19
+ .description("Clean up old sessions to stay within disk budget");
20
+ // Run cleanup
21
+ cleanupCmd
22
+ .command("run")
23
+ .description("Run session cleanup")
24
+ .option("--max-size <MB>", "Maximum disk usage in MB", "1000")
25
+ .option("--min-keep <count>", "Minimum sessions to keep", "5")
26
+ .option("--dry-run", "Show what would be deleted without actually deleting")
27
+ .action(async (options) => {
28
+ console.log("🎱 Pool Bot - Session Cleanup\n");
29
+ const maxDiskUsageMB = parseInt(options.maxSize);
30
+ const minSessionsToKeep = parseInt(options.minKeep);
31
+ // Show current status
32
+ const status = await getSessionCleanupStatus({
33
+ maxDiskUsageMB,
34
+ });
35
+ console.log("📊 Current Status:");
36
+ console.log(` Sessions: ${status.sessionCount}`);
37
+ console.log(` Disk Usage: ${formatBytes(status.currentUsageMB * 1024 * 1024)}`);
38
+ console.log(` Max Allowed: ${formatBytes(status.maxUsageMB * 1024 * 1024)}`);
39
+ console.log(` Usage: ${status.usagePercent.toFixed(1)}%`);
40
+ console.log(` Over Budget: ${status.overBudget ? "Yes ⚠️" : "No ✅"}\n`);
41
+ if (!status.overBudget) {
42
+ console.log("✅ No cleanup needed - under budget\n");
43
+ return;
44
+ }
45
+ // Run cleanup
46
+ const result = await cleanupSessions({
47
+ maxDiskUsageMB,
48
+ minSessionsToKeep,
49
+ dryRun: options.dryRun,
50
+ });
51
+ if (result.success) {
52
+ if (options.dryRun) {
53
+ console.log("🔍 Dry Run - No changes made\n");
54
+ console.log("📊 Would cleanup:");
55
+ console.log(` - Sessions to delete: ${result.sessionsDeleted}`);
56
+ console.log(` - Space to free: ${formatBytes(result.spaceFreedBytes)}`);
57
+ console.log(` - Sessions remaining: ${result.sessionsRemaining}`);
58
+ }
59
+ else {
60
+ console.log("✅ Cleanup completed successfully!\n");
61
+ console.log("📊 Results:");
62
+ console.log(` - Sessions deleted: ${result.sessionsDeleted}`);
63
+ console.log(` - Space freed: ${formatBytes(result.spaceFreedBytes)}`);
64
+ console.log(` - Sessions remaining: ${result.sessionsRemaining}`);
65
+ console.log(` - Current usage: ${formatBytes(result.currentDiskUsageBytes)}`);
66
+ console.log(` - Duration: ${result.duration}ms`);
67
+ }
68
+ }
69
+ else {
70
+ console.error("❌ Cleanup failed!\n");
71
+ console.error(`Error: ${result.error}`);
72
+ process.exit(1);
73
+ }
74
+ });
75
+ // Show status
76
+ cleanupCmd
77
+ .command("status")
78
+ .description("Show session cleanup status")
79
+ .option("--max-size <MB>", "Maximum disk usage in MB", "1000")
80
+ .action(async (options) => {
81
+ console.log("🎱 Pool Bot - Session Status\n");
82
+ const maxDiskUsageMB = parseInt(options.maxSize);
83
+ const status = await getSessionCleanupStatus({
84
+ maxDiskUsageMB,
85
+ });
86
+ console.log("📊 Session Status:");
87
+ console.log(` Sessions: ${status.sessionCount}`);
88
+ console.log(` Disk Usage: ${formatBytes(status.currentUsageMB * 1024 * 1024)}`);
89
+ console.log(` Max Allowed: ${formatBytes(status.maxUsageMB * 1024 * 1024)}`);
90
+ console.log(` Usage: ${status.usagePercent.toFixed(1)}%`);
91
+ console.log(` Over Budget: ${status.overBudget ? "Yes ⚠️" : "No ✅"}\n`);
92
+ if (status.overBudget) {
93
+ console.log('💡 Run "poolbot sessions-cleanup run" to cleanup old sessions\n');
94
+ }
95
+ });
96
+ return cleanupCmd;
97
+ }