@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.
- package/CHANGELOG.md +69 -0
- package/dist/agents/tools/web-fetch.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/commands/skills-openclaw.command.js +123 -0
- package/dist/config/paths.js +7 -0
- package/dist/infra/net/fetch-guard.js +191 -146
- package/dist/media/fetch.js +83 -112
- package/dist/media/inbound-path-policy.js +90 -97
- package/dist/media/read-response-with-limit.js +49 -26
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/plugin-sdk/audio.js +7 -0
- package/dist/plugin-sdk/bluebubbles.js +7 -0
- package/dist/plugin-sdk/browser.js +7 -0
- package/dist/plugin-sdk/canvas.js +7 -0
- package/dist/plugin-sdk/cron.js +7 -0
- package/dist/plugin-sdk/discord-actions.js +6 -0
- package/dist/plugin-sdk/discord.js +7 -0
- package/dist/plugin-sdk/image.js +7 -0
- package/dist/plugin-sdk/imessage.js +6 -0
- package/dist/plugin-sdk/keyed-async-queue.js +35 -0
- package/dist/plugin-sdk/media.js +8 -0
- package/dist/plugin-sdk/memory.js +7 -0
- package/dist/plugin-sdk/pdf.js +7 -0
- package/dist/plugin-sdk/sessions.js +7 -0
- package/dist/plugin-sdk/signal.js +6 -0
- package/dist/plugin-sdk/slack-actions.js +7 -0
- package/dist/plugin-sdk/slack.js +7 -0
- package/dist/plugin-sdk/telegram-actions.js +6 -0
- package/dist/plugin-sdk/telegram.js +6 -0
- package/dist/plugin-sdk/test-utils.js +110 -0
- package/dist/plugin-sdk/tts.js +7 -0
- package/dist/plugin-sdk/whatsapp.js +6 -0
- package/dist/providers/github-copilot-auth.js +53 -76
- package/dist/providers/github-copilot-models.js +63 -35
- package/dist/providers/github-copilot-token.js +46 -89
- package/dist/security/audit-findings.js +165 -0
- package/dist/security/audit.js +141 -572
- package/dist/skills/openclaw-skill-loader.js +191 -0
- package/dist/slack/monitor/media.js +2 -1
- package/docs/branding-evaluation-2026-03-12.md +285 -0
- package/docs/improvements/OPENCLAW-IMPLEMENTATION.md +45 -0
- package/docs/skills/openclaw-integration.md +295 -0
- package/docs/testing/TEST-PLAN-2026-03-13.md +338 -0
- package/docs/version-2026.3.16-evaluation.md +190 -0
- package/extensions/acpx/package.json +19 -0
- package/extensions/acpx/poolbot.plugin.json +9 -0
- package/extensions/acpx/src/index.ts +34 -0
- package/extensions/bluebubbles/src/runtime.ts +1 -0
- package/extensions/diffs/package.json +15 -0
- package/extensions/diffs/poolbot.plugin.json +10 -0
- package/extensions/diffs/src/index.ts +106 -0
- package/extensions/discord/src/runtime.ts +1 -0
- package/extensions/feishu/src/runtime.ts +1 -0
- package/extensions/github-copilot/package.json +28 -0
- package/extensions/github-copilot/poolbot.plugin.json +29 -0
- package/extensions/github-copilot/src/index.ts +126 -0
- package/extensions/github-copilot/tsconfig.json +10 -0
- package/extensions/googlechat/src/runtime.ts +1 -0
- package/extensions/imessage/src/runtime.ts +1 -0
- package/extensions/irc/src/runtime.ts +1 -0
- package/extensions/line/src/runtime.ts +1 -0
- package/extensions/matrix/src/runtime.ts +1 -0
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +10 -1
- package/extensions/mattermost/src/runtime.ts +6 -3
- package/extensions/msteams/src/runtime.ts +1 -0
- package/extensions/nextcloud-talk/src/runtime.ts +1 -0
- package/extensions/nostr/src/runtime.ts +5 -2
- package/extensions/ollama/package.json +20 -0
- package/extensions/ollama/poolbot.plugin.json +14 -0
- package/extensions/ollama/src/index.ts +95 -0
- package/extensions/sglang/package.json +18 -0
- package/extensions/sglang/poolbot.plugin.json +13 -0
- package/extensions/sglang/src/index.ts +62 -0
- package/extensions/signal/src/runtime.ts +1 -0
- package/extensions/slack/src/runtime.ts +1 -0
- package/extensions/telegram/src/runtime.ts +1 -0
- package/extensions/test-utils/package.json +17 -0
- package/extensions/test-utils/poolbot.plugin.json +16 -0
- package/extensions/test-utils/src/index.ts +220 -0
- package/extensions/tlon/src/runtime.ts +1 -0
- package/extensions/twitch/src/runtime.ts +1 -0
- package/extensions/vllm/package.json +19 -0
- package/extensions/vllm/poolbot.plugin.json +13 -0
- package/extensions/vllm/src/index.ts +90 -0
- package/extensions/whatsapp/src/runtime.ts +1 -0
- package/extensions/zalo/src/runtime.ts +1 -0
- package/extensions/zalouser/src/runtime.ts +1 -0
- 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
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@poolzin/pool-bot",
|
|
3
|
-
"version": "2026.3.
|
|
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":
|
|
28
|
-
|
|
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": {
|