@poolzin/pool-bot 2026.3.16 → 2026.3.18

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 (88) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/agents/tools/web-fetch.js +1 -1
  3. package/dist/build-info.json +3 -3
  4. package/dist/commands/skills-openclaw.command.js +123 -0
  5. package/dist/config/paths.js +7 -0
  6. package/dist/infra/net/fetch-guard.js +191 -146
  7. package/dist/media/fetch.js +83 -112
  8. package/dist/media/inbound-path-policy.js +90 -97
  9. package/dist/media/read-response-with-limit.js +49 -26
  10. package/dist/media-understanding/attachments.js +1 -1
  11. package/dist/plugin-sdk/audio.js +7 -0
  12. package/dist/plugin-sdk/bluebubbles.js +7 -0
  13. package/dist/plugin-sdk/browser.js +7 -0
  14. package/dist/plugin-sdk/canvas.js +7 -0
  15. package/dist/plugin-sdk/cron.js +7 -0
  16. package/dist/plugin-sdk/discord-actions.js +6 -0
  17. package/dist/plugin-sdk/discord.js +7 -0
  18. package/dist/plugin-sdk/image.js +7 -0
  19. package/dist/plugin-sdk/imessage.js +6 -0
  20. package/dist/plugin-sdk/keyed-async-queue.js +35 -0
  21. package/dist/plugin-sdk/media.js +8 -0
  22. package/dist/plugin-sdk/memory.js +7 -0
  23. package/dist/plugin-sdk/pdf.js +7 -0
  24. package/dist/plugin-sdk/sessions.js +7 -0
  25. package/dist/plugin-sdk/signal.js +6 -0
  26. package/dist/plugin-sdk/slack-actions.js +7 -0
  27. package/dist/plugin-sdk/slack.js +7 -0
  28. package/dist/plugin-sdk/telegram-actions.js +6 -0
  29. package/dist/plugin-sdk/telegram.js +6 -0
  30. package/dist/plugin-sdk/test-utils.js +110 -0
  31. package/dist/plugin-sdk/tts.js +7 -0
  32. package/dist/plugin-sdk/whatsapp.js +6 -0
  33. package/dist/providers/github-copilot-auth.js +53 -76
  34. package/dist/providers/github-copilot-models.js +63 -35
  35. package/dist/providers/github-copilot-token.js +46 -89
  36. package/dist/security/audit-findings.js +165 -0
  37. package/dist/security/audit.js +141 -572
  38. package/dist/skills/openclaw-skill-loader.js +191 -0
  39. package/dist/slack/monitor/media.js +2 -1
  40. package/docs/branding-evaluation-2026-03-12.md +285 -0
  41. package/docs/improvements/OPENCLAW-IMPLEMENTATION.md +45 -0
  42. package/docs/skills/openclaw-integration.md +295 -0
  43. package/docs/testing/TEST-PLAN-2026-03-13.md +338 -0
  44. package/docs/version-2026.3.16-evaluation.md +190 -0
  45. package/extensions/acpx/package.json +19 -0
  46. package/extensions/acpx/poolbot.plugin.json +9 -0
  47. package/extensions/acpx/src/index.ts +34 -0
  48. package/extensions/bluebubbles/src/runtime.ts +1 -0
  49. package/extensions/diffs/package.json +15 -0
  50. package/extensions/diffs/poolbot.plugin.json +10 -0
  51. package/extensions/diffs/src/index.ts +106 -0
  52. package/extensions/discord/src/runtime.ts +1 -0
  53. package/extensions/feishu/src/runtime.ts +1 -0
  54. package/extensions/github-copilot/package.json +28 -0
  55. package/extensions/github-copilot/poolbot.plugin.json +29 -0
  56. package/extensions/github-copilot/src/index.ts +126 -0
  57. package/extensions/github-copilot/tsconfig.json +10 -0
  58. package/extensions/googlechat/src/runtime.ts +1 -0
  59. package/extensions/imessage/src/runtime.ts +1 -0
  60. package/extensions/irc/src/runtime.ts +1 -0
  61. package/extensions/line/src/runtime.ts +1 -0
  62. package/extensions/matrix/src/runtime.ts +1 -0
  63. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +10 -1
  64. package/extensions/mattermost/src/runtime.ts +6 -3
  65. package/extensions/msteams/src/runtime.ts +1 -0
  66. package/extensions/nextcloud-talk/src/runtime.ts +1 -0
  67. package/extensions/nostr/src/runtime.ts +5 -2
  68. package/extensions/ollama/package.json +20 -0
  69. package/extensions/ollama/poolbot.plugin.json +14 -0
  70. package/extensions/ollama/src/index.ts +95 -0
  71. package/extensions/sglang/package.json +18 -0
  72. package/extensions/sglang/poolbot.plugin.json +13 -0
  73. package/extensions/sglang/src/index.ts +62 -0
  74. package/extensions/signal/src/runtime.ts +1 -0
  75. package/extensions/slack/src/runtime.ts +1 -0
  76. package/extensions/telegram/src/runtime.ts +1 -0
  77. package/extensions/test-utils/package.json +17 -0
  78. package/extensions/test-utils/poolbot.plugin.json +16 -0
  79. package/extensions/test-utils/src/index.ts +220 -0
  80. package/extensions/tlon/src/runtime.ts +1 -0
  81. package/extensions/twitch/src/runtime.ts +1 -0
  82. package/extensions/vllm/package.json +19 -0
  83. package/extensions/vllm/poolbot.plugin.json +13 -0
  84. package/extensions/vllm/src/index.ts +90 -0
  85. package/extensions/whatsapp/src/runtime.ts +1 -0
  86. package/extensions/zalo/src/runtime.ts +1 -0
  87. package/extensions/zalouser/src/runtime.ts +1 -0
  88. package/package.json +77 -3
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Pool Bot vLLM Provider Extension
3
+ *
4
+ * Provides vLLM runtime for high-throughput LLM inference
5
+ */
6
+
7
+ export default async function createPlugin(ctx: any): Promise<any> {
8
+ const config = ctx.config as {
9
+ host?: string;
10
+ port?: number;
11
+ };
12
+
13
+ const host = config.host ?? "http://127.0.0.1";
14
+ const port = config.port ?? 8000;
15
+ const baseUrl = `${host}:${port}`;
16
+
17
+ ctx.logger.info(`vLLM Provider initialized (${baseUrl})`);
18
+
19
+ ctx.cli
20
+ .command("vllm.status")
21
+ .description("Check vLLM server status")
22
+ .action(async () => {
23
+ try {
24
+ const res = await fetch(`${baseUrl}/health`);
25
+ if (res.ok) {
26
+ console.log("✅ vLLM Status");
27
+ console.log(` URL: ${baseUrl}`);
28
+ console.log(` Status: Running`);
29
+ } else {
30
+ console.log("❌ vLLM not running");
31
+ }
32
+ } catch (error) {
33
+ console.log("❌ vLLM connection failed");
34
+ console.log(` Error: ${error instanceof Error ? error.message : error}`);
35
+ }
36
+ });
37
+
38
+ ctx.cli
39
+ .command("vllm.models")
40
+ .description("List available vLLM models")
41
+ .action(async () => {
42
+ try {
43
+ const res = await fetch(`${baseUrl}/v1/models`);
44
+ if (!res.ok) throw new Error("vLLM not running");
45
+
46
+ const data = await res.json() as { data: Array<{ id: string }> };
47
+ console.log("📦 vLLM Models\n");
48
+
49
+ for (const model of data.data) {
50
+ console.log(`🤖 ${model.id}`);
51
+ }
52
+ } catch (error) {
53
+ console.error("Failed to list models:", error instanceof Error ? error.message : error);
54
+ }
55
+ });
56
+
57
+ ctx.cli
58
+ .command("vllm.generate")
59
+ .description("Generate text with vLLM")
60
+ .argument("<prompt>", "Input prompt")
61
+ .option("-m, --model <model>", "Model to use")
62
+ .option("-t, --max-tokens <number>", "Max tokens to generate", "256")
63
+ .action(async (prompt: string, options?: { model?: string; maxTokens?: string }) => {
64
+ try {
65
+ const res = await fetch(`${baseUrl}/v1/completions`, {
66
+ method: "POST",
67
+ headers: { "Content-Type": "application/json" },
68
+ body: JSON.stringify({
69
+ model: options?.model ?? "llama",
70
+ prompt,
71
+ max_tokens: parseInt(options?.maxTokens ?? "256"),
72
+ }),
73
+ });
74
+
75
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
76
+
77
+ const data = await res.json() as { choices: Array<{ text: string }> };
78
+ console.log(data.choices[0]?.text ?? "No response");
79
+ } catch (error) {
80
+ console.error("Generation failed:", error instanceof Error ? error.message : error);
81
+ process.exit(1);
82
+ }
83
+ });
84
+
85
+ return {
86
+ name: "vllm",
87
+ version: "2026.3.17",
88
+ commands: ["vllm.status", "vllm.models", "vllm.generate"],
89
+ };
90
+ }
@@ -1,5 +1,6 @@
1
1
  import type { PluginRuntime } from "poolbot/plugin-sdk";
2
2
 
3
+ // oxlint-disable-next-line typescript-eslint/no-redundant-type-constituents
3
4
  let runtime: PluginRuntime | null = null;
4
5
 
5
6
  export function setWhatsAppRuntime(next: PluginRuntime) {
@@ -1,5 +1,6 @@
1
1
  import type { PluginRuntime } from "poolbot/plugin-sdk";
2
2
 
3
+ // oxlint-disable-next-line typescript-eslint/no-redundant-type-constituents
3
4
  let runtime: PluginRuntime | null = null;
4
5
 
5
6
  export function setZaloRuntime(next: PluginRuntime): void {
@@ -1,5 +1,6 @@
1
1
  import type { PluginRuntime } from "poolbot/plugin-sdk";
2
2
 
3
+ // oxlint-disable-next-line typescript-eslint/no-redundant-type-constituents
3
4
  let runtime: PluginRuntime | null = null;
4
5
 
5
6
  export function setZalouserRuntime(next: PluginRuntime): void {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poolzin/pool-bot",
3
- "version": "2026.3.16",
3
+ "version": "2026.3.18",
4
4
  "description": "🎱 Pool Bot - AI assistant with PLCODE integrations",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -24,8 +24,82 @@
24
24
  "main": "dist/index.js",
25
25
  "exports": {
26
26
  ".": "./dist/index.js",
27
- "./plugin-sdk": "./dist/plugin-sdk/index.js",
28
- "./plugin-sdk/*": "./dist/plugin-sdk/*",
27
+ "./plugin-sdk": {
28
+ "types": "./dist/plugin-sdk/index.d.ts",
29
+ "default": "./dist/plugin-sdk/index.js"
30
+ },
31
+ "./plugin-sdk/account-id": {
32
+ "types": "./dist/plugin-sdk/account-id.d.ts",
33
+ "default": "./dist/plugin-sdk/account-id.js"
34
+ },
35
+ "./plugin-sdk/agent-media-payload": {
36
+ "types": "./dist/plugin-sdk/agent-media-payload.d.ts",
37
+ "default": "./dist/plugin-sdk/agent-media-payload.js"
38
+ },
39
+ "./plugin-sdk/allow-from": {
40
+ "types": "./dist/plugin-sdk/allow-from.d.ts",
41
+ "default": "./dist/plugin-sdk/allow-from.js"
42
+ },
43
+ "./plugin-sdk/command-auth": {
44
+ "types": "./dist/plugin-sdk/command-auth.d.ts",
45
+ "default": "./dist/plugin-sdk/command-auth.js"
46
+ },
47
+ "./plugin-sdk/config-paths": {
48
+ "types": "./dist/plugin-sdk/config-paths.d.ts",
49
+ "default": "./dist/plugin-sdk/config-paths.js"
50
+ },
51
+ "./plugin-sdk/file-lock": {
52
+ "types": "./dist/plugin-sdk/file-lock.d.ts",
53
+ "default": "./dist/plugin-sdk/file-lock.js"
54
+ },
55
+ "./plugin-sdk/json-store": {
56
+ "types": "./dist/plugin-sdk/json-store.d.ts",
57
+ "default": "./dist/plugin-sdk/json-store.js"
58
+ },
59
+ "./plugin-sdk/keyed-async-queue": {
60
+ "types": "./dist/plugin-sdk/keyed-async-queue.d.ts",
61
+ "default": "./dist/plugin-sdk/keyed-async-queue.js"
62
+ },
63
+ "./plugin-sdk/onboarding": {
64
+ "types": "./dist/plugin-sdk/onboarding.d.ts",
65
+ "default": "./dist/plugin-sdk/onboarding.js"
66
+ },
67
+ "./plugin-sdk/provider-auth-result": {
68
+ "types": "./dist/plugin-sdk/provider-auth-result.d.ts",
69
+ "default": "./dist/plugin-sdk/provider-auth-result.js"
70
+ },
71
+ "./plugin-sdk/slack-message-actions": {
72
+ "types": "./dist/plugin-sdk/slack-message-actions.d.ts",
73
+ "default": "./dist/plugin-sdk/slack-message-actions.js"
74
+ },
75
+ "./plugin-sdk/status-helpers": {
76
+ "types": "./dist/plugin-sdk/status-helpers.d.ts",
77
+ "default": "./dist/plugin-sdk/status-helpers.js"
78
+ },
79
+ "./plugin-sdk/temp-path": {
80
+ "types": "./dist/plugin-sdk/temp-path.d.ts",
81
+ "default": "./dist/plugin-sdk/temp-path.js"
82
+ },
83
+ "./plugin-sdk/text-chunking": {
84
+ "types": "./dist/plugin-sdk/text-chunking.d.ts",
85
+ "default": "./dist/plugin-sdk/text-chunking.js"
86
+ },
87
+ "./plugin-sdk/tool-send": {
88
+ "types": "./dist/plugin-sdk/tool-send.d.ts",
89
+ "default": "./dist/plugin-sdk/tool-send.js"
90
+ },
91
+ "./plugin-sdk/webhook-path": {
92
+ "types": "./dist/plugin-sdk/webhook-path.d.ts",
93
+ "default": "./dist/plugin-sdk/webhook-path.js"
94
+ },
95
+ "./plugin-sdk/webhook-targets": {
96
+ "types": "./dist/plugin-sdk/webhook-targets.d.ts",
97
+ "default": "./dist/plugin-sdk/webhook-targets.js"
98
+ },
99
+ "./plugin-sdk/windows-spawn": {
100
+ "types": "./dist/plugin-sdk/windows-spawn.d.ts",
101
+ "default": "./dist/plugin-sdk/windows-spawn.js"
102
+ },
29
103
  "./cli-entry": "./dist/entry.js"
30
104
  },
31
105
  "scripts": {